Move remaining CSITs from to docker/csit 90/121290/2
authorJim Hahn <jrh3@att.com>
Wed, 12 May 2021 15:33:43 +0000 (11:33 -0400)
committerJim Hahn <jrh3@att.com>
Wed, 12 May 2021 16:28:07 +0000 (12:28 -0400)
Moved the remaining CSITs from the individual policy repos to the
docker repo.  The files are unchanged, except for removing trailing
spaces and adding newlines to the end of a few of them.  The two
exceptions were the setup.sh scripts for drools-apps and distribution,
in which "/csit" is no longer being appended to the TESTPLANDIR, as
that variable now already includes "/csit".

Issue-ID: POLICY-3299
Change-Id: I4dd381ad7d916f334cfbcbfb541c78db97012dd2
Signed-off-by: Jim Hahn <jrh3@att.com>
39 files changed:
csit/apex-pdp/plans/setup.sh [new file with mode: 0644]
csit/apex-pdp/plans/teardown.sh [new file with mode: 0644]
csit/apex-pdp/plans/testplan.txt [new file with mode: 0644]
csit/apex-pdp/tests/apex-pdp-test.robot [new file with mode: 0644]
csit/apex-pdp/tests/data/event.json [new file with mode: 0644]
csit/apex-pdp/tests/data/onap.policies.native.Apex.tosca.json [new file with mode: 0644]
csit/apex-pdp/tests/data/pdp_update.json [new file with mode: 0644]
csit/api/plans/setup.sh [new file with mode: 0644]
csit/api/plans/teardown.sh [new file with mode: 0755]
csit/api/plans/testplan.txt [new file with mode: 0644]
csit/api/tests/api-test.robot [new file with mode: 0644]
csit/api/tests/data/onap.policy.monitoring.tcagen2.v1.json [new file with mode: 0644]
csit/api/tests/data/onap.policy.monitoring.tcagen2.v2.json [new file with mode: 0644]
csit/distribution/config/csar/sample_csar_with_apex_policy.csar [new file with mode: 0644]
csit/distribution/plans/setup.sh [new file with mode: 0644]
csit/distribution/plans/teardown.sh [new file with mode: 0644]
csit/distribution/plans/testplan.txt [new file with mode: 0644]
csit/distribution/tests/data/event.json [new file with mode: 0644]
csit/distribution/tests/distribution-test.robot [new file with mode: 0644]
csit/drools-applications/plans/setup.sh [new file with mode: 0755]
csit/drools-applications/plans/teardown.sh [new file with mode: 0755]
csit/drools-applications/plans/testplan.txt [new file with mode: 0644]
csit/drools-applications/tests/data/deploy.drools.policies.json [new file with mode: 0644]
csit/drools-applications/tests/data/deploy.xacml.policies.json [new file with mode: 0644]
csit/drools-applications/tests/data/vcpeOnset.json [new file with mode: 0644]
csit/drools-applications/tests/data/vdnsOnset.json [new file with mode: 0644]
csit/drools-applications/tests/data/vfwOnset.json [new file with mode: 0644]
csit/drools-applications/tests/drools-applications-test.robot [new file with mode: 0644]
csit/drools-pdp/plans/setup.sh [new file with mode: 0755]
csit/drools-pdp/plans/teardown.sh [new file with mode: 0755]
csit/drools-pdp/plans/testplan.txt [new file with mode: 0644]
csit/drools-pdp/tests/drools-pdp-test.robot [new file with mode: 0644]
csit/pap/plans/setup.sh [new file with mode: 0644]
csit/pap/plans/teardown.sh [new file with mode: 0644]
csit/pap/plans/testplan.txt [new file with mode: 0644]
csit/pap/tests/data/create.group.request.json [new file with mode: 0644]
csit/pap/tests/data/deploy.group.request.json [new file with mode: 0644]
csit/pap/tests/pap-test.robot [new file with mode: 0644]
csit/run-project-csit.sh

diff --git a/csit/apex-pdp/plans/setup.sh b/csit/apex-pdp/plans/setup.sh
new file mode 100644 (file)
index 0000000..ee8709d
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2018 Ericsson. All rights reserved.
+#
+#  Modifications copyright (c) 2019 Nordix Foundation.
+#  Modifications Copyright (C) 2020-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+sudo apt-get -y install libxml2-utils
+
+source ${SCRIPTS}/detmVers.sh
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d apex-pdp
+
+unset http_proxy https_proxy
+
+POLICY_API_IP=`get-instance-ip.sh policy-api`
+POLICY_PAP_IP=`get-instance-ip.sh policy-pap`
+MARIADB_IP=`get-instance-ip.sh mariadb`
+APEX_IP=`get-instance-ip.sh policy-apex-pdp`
+DMAAP_IP=`get-instance-ip.sh policy.api.simpledemo.onap.org`
+
+echo PAP IP IS ${POLICY_PAP_IP}
+echo MARIADB IP IS ${MARIADB_IP}
+echo API IP IS ${POLICY_API_IP}
+echo APEX IP IS ${APEX_IP}
+echo DMAAP_IP IS ${DMAAP_IP}
+
+# wait for the app to start up
+${SCRIPTS}/wait_for_port.sh ${APEX_IP} 6969
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v APEX_IP:${APEX_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_PAP_IP:${POLICY_PAP_IP}"
diff --git a/csit/apex-pdp/plans/teardown.sh b/csit/apex-pdp/plans/teardown.sh
new file mode 100644 (file)
index 0000000..f47fcd8
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2018 Ericsson. All rights reserved.
+#
+#  Modifications copyright (c) 2019 Nordix Foundation.
+#  Modifications Copyright (C) 2020-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/apex-pdp/plans/testplan.txt b/csit/apex-pdp/plans/testplan.txt
new file mode 100644 (file)
index 0000000..8944653
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/apex-pdp.git]/csit/tests/.
+# Place the suites in run order.
+apex-pdp-test.robot
diff --git a/csit/apex-pdp/tests/apex-pdp-test.robot b/csit/apex-pdp/tests/apex-pdp-test.robot
new file mode 100644 (file)
index 0000000..e538e6f
--- /dev/null
@@ -0,0 +1,99 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Test Cases ***
+
+Healthcheck
+     [Documentation]    Runs Apex PDP Health check
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${APEX_IP}:6969
+     ${session}=    Create Session      policy  https://${APEX_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/apex-pdp/v1/healthcheck     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['code']}  200
+
+ExecuteApexPolicy
+     Wait Until Keyword Succeeds    2 min    5 sec    CreatePolicy
+     Wait Until Keyword Succeeds    3 min    5 sec    VerifyPdpStatistics    0    0    0    0
+     Wait Until Keyword Succeeds    2 min    5 sec    DeployPolicy
+     Wait Until Keyword Succeeds    2 min    5 sec    VerifyPolicyStatus
+     Wait Until Keyword Succeeds    3 min    5 sec    VerifyPdpStatistics    1    1    0    0
+     Wait Until Keyword Succeeds    4 min    10 sec    RunEventOnApexEngine
+     Wait Until Keyword Succeeds    3 min    5 sec    VerifyPdpStatistics    1    1    1    1
+
+*** Keywords ***
+
+CreatePolicy
+     [Documentation]    Create a new Apex policy
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     ${postjson}=  Get file  ${CURDIR}/data/onap.policies.native.Apex.tosca.json
+     Log    Creating session https://${POLICY_API_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   POST On Session   policy  /policy/api/v1/policytypes/onap.policies.native.Apex/versions/1.0.0/policies  data=${postjson}   headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Dictionary Should Contain Key    ${resp.json()}    tosca_definitions_version
+
+DeployPolicy
+     [Documentation]    Deploy the policy in apex-pdp engine
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     ${postjson}=  Get file  ${CURDIR}/data/pdp_update.json
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   POST On Session   policy  /policy/pap/v1/pdps/deployments/batch  data=${postjson}   headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     202
+
+VerifyPolicyStatus
+     [Documentation]    Verify policy deployment status
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/pap/v1/policies/status     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()[0]['pdpGroup']}  defaultGroup
+     Should Be Equal As Strings    ${resp.json()[0]['pdpType']}  apex
+     Should Be Equal As Strings    ${resp.json()[0]['pdpId']}  policy-apex-pdp
+     Should Be Equal As Strings    ${resp.json()[0]['policy']['name']}  onap.policies.native.apex.Sampledomain
+     Should Be Equal As Strings    ${resp.json()[0]['policy']['version']}  1.0.0
+     Should Be Equal As Strings    ${resp.json()[0]['policyType']['name']}  onap.policies.native.Apex
+     Should Be Equal As Strings    ${resp.json()[0]['policyType']['version']}  1.0.0
+     Should Be Equal As Strings    ${resp.json()[0]['deploy']}  True
+     Should Be Equal As Strings    ${resp.json()[0]['state']}  SUCCESS
+
+RunEventOnApexEngine
+    [Documentation]    Send event to verify policy execution
+    Create Session   apexSession  http://${APEX_IP}:23324   max_retries=1
+    ${data}=    Get Binary File     ${CURDIR}${/}data${/}event.json
+    &{headers}=  Create Dictionary    Content-Type=application/json    Accept=application/json
+    ${resp}=    PUT On Session    apexSession    /apex/FirstConsumer/EventIn    data=${data}   headers=${headers}
+    Should Be Equal As Strings    ${resp.status_code}   200
+
+VerifyPdpStatistics
+     [Documentation]    Verify pdp statistics after policy execution
+     [Arguments]    ${deployCount}    ${deploySuccessCount}    ${executedCount}    ${executedSuccessCount}
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=    GET On Session    policy    /policy/pap/v1/pdps/statistics/defaultGroup/apex/policy-apex-pdp    params=recordCount=1    headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['pdpInstanceId']}  policy-apex-pdp
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['pdpGroupName']}  defaultGroup
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['pdpSubGroupName']}  apex
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['policyDeployCount']}  ${deployCount}
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['policyDeploySuccessCount']}  ${deploySuccessCount}
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['policyDeployFailCount']}  0
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['policyExecutedCount']}  ${executedCount}
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['policyExecutedSuccessCount']}  ${executedSuccessCount}
+     Should Be Equal As Strings    ${resp.json()['defaultGroup']['apex'][0]['policyExecutedFailCount']}  0
diff --git a/csit/apex-pdp/tests/data/event.json b/csit/apex-pdp/tests/data/event.json
new file mode 100644 (file)
index 0000000..9dbf279
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "nameSpace": "org.onap.policy.apex.sample.events",
+    "name": "Event0000",
+    "version": "0.0.1",
+    "source": "REST_0",
+    "target": "apex",
+    "TestSlogan": "Test slogan for External Event0",
+    "TestMatchCase": 3,
+    "TestTimestamp": 1536363522018,
+    "TestTemperature": 9080.866
+}
diff --git a/csit/apex-pdp/tests/data/onap.policies.native.Apex.tosca.json b/csit/apex-pdp/tests/data/onap.policies.native.Apex.tosca.json
new file mode 100644 (file)
index 0000000..d90ae08
--- /dev/null
@@ -0,0 +1,7436 @@
+{
+  "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+  "topology_template": {
+    "policies": [
+      {
+        "onap.policies.native.apex.Sampledomain": {
+          "type": "onap.policies.native.Apex",
+          "type_version": "1.0.0",
+          "version": "1.0.0",
+          "name": "onap.policies.native.apex.Sampledomain",
+          "properties": {
+            "engineServiceParameters": {
+              "name": "MyApexEngine",
+              "version": "0.0.1",
+              "id": 45,
+              "instanceCount": 4,
+              "deploymentPort": 12561,
+              "policy_type_impl": {
+                "apexPolicyModel": {
+                  "key": {
+                    "name": "SamplePolicyModelJAVASCRIPT",
+                    "version": "0.0.1"
+                  },
+                  "keyInformation": {
+                    "key": {
+                      "name": "KeyInformation",
+                      "version": "0.0.1"
+                    },
+                    "keyInfoMap": {
+                      "entry": [
+                        {
+                          "key": {
+                            "name": "Context",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Context",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "ca36bfd8-6042-3633-8c85-89c66507c3bf",
+                            "description": "Generated description for concept referred to by key \"Context:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0000",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0000",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "465a81cc-885f-3a4d-bc4e-1508da92b236",
+                            "description": "Generated description for concept referred to by key \"Event0000:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0001",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0001",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "36b2d570-fff7-3a4b-bab2-6bf492f5129a",
+                            "description": "Generated description for concept referred to by key \"Event0001:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0002",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0002",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "ff6160a7-fb5e-379c-a6d2-2cd28053eacf",
+                            "description": "Generated description for concept referred to by key \"Event0002:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0003",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0003",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "5899e216-2abf-3781-abc4-2c257b92721e",
+                            "description": "Generated description for concept referred to by key \"Event0003:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0004",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0004",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "7c2692a7-4587-3d09-abf9-d96b339a316f",
+                            "description": "Generated description for concept referred to by key \"Event0004:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0100",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0100",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "b696048c-c0b0-34c1-8dbe-32ab6c8bc0c7",
+                            "description": "Generated description for concept referred to by key \"Event0100:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0101",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0101",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "edbfa868-2ab2-30fd-8078-4c7f67ca6122",
+                            "description": "Generated description for concept referred to by key \"Event0101:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0102",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0102",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "6b6ad2ff-ef63-3f7b-aabb-fba44f8de9d4",
+                            "description": "Generated description for concept referred to by key \"Event0102:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0103",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0103",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "c2550912-10d9-3000-8826-377288cd6cb1",
+                            "description": "Generated description for concept referred to by key \"Event0103:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0104",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0104",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "f6d75b71-c8a7-3337-a121-88d68c389f5a",
+                            "description": "Generated description for concept referred to by key \"Event0104:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Events",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Events",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "0215644c-4531-375c-8335-d558b4de8c03",
+                            "description": "Generated description for concept referred to by key \"Events:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "ExternalContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "ExternalContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "976a79e7-5c80-3c03-9503-da3f41fec395",
+                            "description": "Generated description for concept referred to by key \"ExternalContextAlbum:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "GlobalContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "GlobalContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "c95e9e5f-d2c7-3ac7-a205-ea3574530cb7",
+                            "description": "Generated description for concept referred to by key \"GlobalContextAlbum:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "KeyInformation",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "KeyInformation",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "1ff2f905-685c-3caf-95bc-0bbc90345888",
+                            "description": "Generated description for concept referred to by key \"KeyInformation:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policies",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policies",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "f54c3b2b-be76-31c4-adfc-87c494c06808",
+                            "description": "Generated description for concept referred to by key \"Policies:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policy0",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "3410e939-30ca-32c4-a2d8-c30b6fee6eec",
+                            "description": "Generated description for concept referred to by key \"Policy0:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy0ContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policy0ContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "e27564c4-3cbf-3db2-9bf3-83ae80a2f907",
+                            "description": "Generated description for concept referred to by key \"Policy0ContextAlbum:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policy1",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "d0b2b585-f344-33b8-af9e-250e7f4cfbce",
+                            "description": "Generated description for concept referred to by key \"Policy1:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy1ContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policy1ContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "815d74ae-6fc0-3221-87b9-2bb1dfdfa7f0",
+                            "description": "Generated description for concept referred to by key \"Policy1ContextAlbum:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "SamplePolicyModelJAVASCRIPT",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "SamplePolicyModelJAVASCRIPT",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "bc8ee312-81ce-3c4a-92d5-4a73b8077148",
+                            "description": "Generated description for concept referred to by key \"SamplePolicyModelJAVASCRIPT:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act0",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "0589ff20-adcc-3ce5-95fe-8d7978ed54ed",
+                            "description": "Generated description for concept referred to by key \"Task_Act0:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act1",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "095b126d-ca8b-32c9-ad52-d744e817a79c",
+                            "description": "Generated description for concept referred to by key \"Task_Act1:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act2",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "3d786b4c-d9ee-3367-ab71-c67271a4ea2f",
+                            "description": "Generated description for concept referred to by key \"Task_Act2:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act3",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "9231753e-20c5-3436-982f-9100340cc570",
+                            "description": "Generated description for concept referred to by key \"Task_Act3:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide0",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "502383d3-483f-3a56-a426-2f0406674c8d",
+                            "description": "Generated description for concept referred to by key \"Task_Decide0:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide1",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "16598106-41c8-3b5a-99c6-5fcf6d1a5ddf",
+                            "description": "Generated description for concept referred to by key \"Task_Decide1:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide2",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "ad3a89f5-e369-3c66-b22c-669f7b3653b8",
+                            "description": "Generated description for concept referred to by key \"Task_Decide2:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide3",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "56815939-1164-3867-9ed1-0a27ff8aafb3",
+                            "description": "Generated description for concept referred to by key \"Task_Decide3:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish0",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "0db0c566-ecd7-3e27-9865-4b82c893abdb",
+                            "description": "Generated description for concept referred to by key \"Task_Establish0:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish1",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "6944a4c1-6201-317c-8d7e-eaa7f2ee0ea0",
+                            "description": "Generated description for concept referred to by key \"Task_Establish1:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish2",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "0f766ea9-11cd-3e7d-a8c8-28c8dee6a85a",
+                            "description": "Generated description for concept referred to by key \"Task_Establish2:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish3",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "c3237a38-cc6d-3418-b1e1-0dc8b4bdcc66",
+                            "description": "Generated description for concept referred to by key \"Task_Establish3:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match0",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "051bcfd5-cf73-3c89-8ee7-ea6e005ec059",
+                            "description": "Generated description for concept referred to by key \"Task_Match0:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match1",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "3754fe19-98f2-34a1-9f45-db31052208d8",
+                            "description": "Generated description for concept referred to by key \"Task_Match1:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match2",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "8c200709-a180-3c8b-916f-275ff49ce194",
+                            "description": "Generated description for concept referred to by key \"Task_Match2:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match3",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "a1a879c6-4510-33b0-bbd0-ad6256189a37",
+                            "description": "Generated description for concept referred to by key \"Task_Match3:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Tasks",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Tasks",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "a7fab96b-ce1c-37ce-bbb2-556b6db524a5",
+                            "description": "Generated description for concept referred to by key \"Tasks:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestCase",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestCase",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "0a652886-c88d-3f8c-8994-ae9161e7c963",
+                            "description": "Generated description for concept referred to by key \"TestCase:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem000",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem000",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "8efba9fa-371e-33df-a7d6-88b0284e7fd0",
+                            "description": "Generated description for concept referred to by key \"TestContextItem000:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem001",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem001",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "3740077c-a2b3-356b-81dc-5ded2118a951",
+                            "description": "Generated description for concept referred to by key \"TestContextItem001:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem002",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem002",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "b5c7df95-9af5-322f-9ea8-eb440a2bf926",
+                            "description": "Generated description for concept referred to by key \"TestContextItem002:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem003",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem003",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "b36f0aa5-0fb9-3e2c-8fa2-fddb7fd05f4b",
+                            "description": "Generated description for concept referred to by key \"TestContextItem003:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem004",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem004",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "093cda11-eaeb-3a46-a5b6-d5e30c00935b",
+                            "description": "Generated description for concept referred to by key \"TestContextItem004:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem005",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem005",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "569a758d-ba40-37c0-aebb-7ad138df25ac",
+                            "description": "Generated description for concept referred to by key \"TestContextItem005:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem006",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem006",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "252818d9-b61f-3962-a905-8865fb00fb04",
+                            "description": "Generated description for concept referred to by key \"TestContextItem006:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem007",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem007",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "fe1a5f7c-c083-377b-a797-752b01fc6c73",
+                            "description": "Generated description for concept referred to by key \"TestContextItem007:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem008",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem008",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "aa87d007-d07e-3f67-8c6d-0ebc3d85479d",
+                            "description": "Generated description for concept referred to by key \"TestContextItem008:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem009",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem009",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "126e7a3a-11b6-3f88-9397-c21d8819f859",
+                            "description": "Generated description for concept referred to by key \"TestContextItem009:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem00A",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem00A",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "0e0e3dec-e03d-3379-a87b-1ecd4aa3d8cc",
+                            "description": "Generated description for concept referred to by key \"TestContextItem00A:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem00B",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem00B",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "dbdc98df-3ff4-360c-b8d3-a7a836ac3de6",
+                            "description": "Generated description for concept referred to by key \"TestContextItem00B:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem00C",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem00C",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "32a2f355-77f3-3b25-ace6-7a9c5763a5ad",
+                            "description": "Generated description for concept referred to by key \"TestContextItem00C:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestDatatypes",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestDatatypes",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "3f95472c-973e-30e2-95f1-bf00cbef909a",
+                            "description": "Generated description for concept referred to by key \"TestDatatypes:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestExternalContextItem",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestExternalContextItem",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "610dbbd4-9149-3b3c-9af4-819056f0e169",
+                            "description": "Generated description for concept referred to by key \"TestExternalContextItem:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestGlobalContextItem",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestGlobalContextItem",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "07fa8f68-55f1-3fd0-81c1-749a379753a7",
+                            "description": "Generated description for concept referred to by key \"TestGlobalContextItem:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestPolicyContextItem",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestPolicyContextItem",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "d9c93cd1-539e-35c5-aaec-bb711ceb1251",
+                            "description": "Generated description for concept referred to by key \"TestPolicyContextItem:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestSlogan",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestSlogan",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "683fe492-7eae-3ac7-9924-bb7850208d05",
+                            "description": "Generated description for concept referred to by key \"TestSlogan:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestTemperature",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestTemperature",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "bba25b6f-e3cd-3060-9022-4ef3a79f8eb0",
+                            "description": "Generated description for concept referred to by key \"TestTemperature:0.0.1\""
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestTimestamp",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestTimestamp",
+                              "version": "0.0.1"
+                            },
+                            "UUID": "97b73937-c344-33c0-924c-4d26b6449564",
+                            "description": "Generated description for concept referred to by key \"TestTimestamp:0.0.1\""
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "policies": {
+                    "key": {
+                      "name": "Policies",
+                      "version": "0.0.1"
+                    },
+                    "policyMap": {
+                      "entry": [
+                        {
+                          "key": {
+                            "name": "Policy0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "policyKey": {
+                              "name": "Policy0",
+                              "version": "0.0.1"
+                            },
+                            "template": "MEDA",
+                            "state": {
+                              "entry": [
+                                {
+                                  "key": "Act",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Act"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0003",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Act_NULL",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0004",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "NULL",
+                                              "parentKeyVersion": "0.0.0",
+                                              "parentLocalName": "NULL",
+                                              "localName": "NULL"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Act1",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Act0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act0_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Act1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act1_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Act2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act2_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Act3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act3_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                },
+                                {
+                                  "key": "Decide",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Decide"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0002",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Decide_Act",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0003",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "NULL",
+                                              "localName": "Act"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "ExternalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "Policy0ContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Decide3",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide0_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide1_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide2_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide3_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                },
+                                {
+                                  "key": "Establish",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Establish"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0001",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Establish_Decide",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0002",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "NULL",
+                                              "localName": "Decide"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "ExternalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "Policy1ContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Establish2",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish0_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish1_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish2_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish3_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                },
+                                {
+                                  "key": "Match",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Match"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0000",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Match_Establish",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0001",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "NULL",
+                                              "localName": "Establish"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "Policy0ContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Match0",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Match0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match0_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Match1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match1_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Match2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match2_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Match3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match3_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy0",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                }
+                              ]
+                            },
+                            "firstState": "Match"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "policyKey": {
+                              "name": "Policy1",
+                              "version": "0.0.1"
+                            },
+                            "template": "MEDA",
+                            "state": {
+                              "entry": [
+                                {
+                                  "key": "Act",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Act"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0103",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Act_NULL",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0104",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "NULL",
+                                              "parentKeyVersion": "0.0.0",
+                                              "parentLocalName": "NULL",
+                                              "localName": "NULL"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Act0",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Act0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act0_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Act1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act1_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Act2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act2_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Act3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Task_Act3_DIRECT_Act_NULL"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Act",
+                                              "localName": "Act_NULL"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                },
+                                {
+                                  "key": "Decide",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Decide"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0102",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Decide_Act",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0103",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "NULL",
+                                              "localName": "Act"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "ExternalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "Policy1ContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Decide3",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide0_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide1_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide2_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Decide3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Task_Decide3_DIRECT_Decide_Act"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Decide",
+                                              "localName": "Decide_Act"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                },
+                                {
+                                  "key": "Establish",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Establish"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0101",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Establish_Decide",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0102",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "NULL",
+                                              "localName": "Decide"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "ExternalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "Policy1ContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Establish1",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish0_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish1_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish2_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Establish3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Task_Establish3_DIRECT_Establish_Decide"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Establish",
+                                              "localName": "Establish_Decide"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                },
+                                {
+                                  "key": "Match",
+                                  "value": {
+                                    "stateKey": {
+                                      "parentKeyName": "Policy1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Match"
+                                    },
+                                    "trigger": {
+                                      "name": "Event0100",
+                                      "version": "0.0.1"
+                                    },
+                                    "stateOutputs": {
+                                      "entry": [
+                                        {
+                                          "key": "Match_Establish",
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            },
+                                            "outgoingEvent": {
+                                              "name": "Event0101",
+                                              "version": "0.0.1"
+                                            },
+                                            "nextState": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "NULL",
+                                              "localName": "Establish"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    },
+                                    "contextAlbumReference": [
+                                      {
+                                        "name": "ExternalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "GlobalContextAlbum",
+                                        "version": "0.0.1"
+                                      },
+                                      {
+                                        "name": "Policy1ContextAlbum",
+                                        "version": "0.0.1"
+                                      }
+                                    ],
+                                    "taskSelectionLogic": {
+                                      "key": "TaskSelectionLigic",
+                                      "logicFlavour": "JAVASCRIPT",
+                                      "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.subject.defaultTaskKey.copyTo(executor.selectedTask)\n\ntrue;"
+                                    },
+                                    "stateFinalizerLogicMap": {
+                                      "entry": []
+                                    },
+                                    "defaultTask": {
+                                      "name": "Task_Match3",
+                                      "version": "0.0.1"
+                                    },
+                                    "taskReferences": {
+                                      "entry": [
+                                        {
+                                          "key": {
+                                            "name": "Task_Match0",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match0_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Match1",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match1_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Match2",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match2_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        },
+                                        {
+                                          "key": {
+                                            "name": "Task_Match3",
+                                            "version": "0.0.1"
+                                          },
+                                          "value": {
+                                            "key": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Task_Match3_DIRECT_Match_Establish"
+                                            },
+                                            "outputType": "DIRECT",
+                                            "output": {
+                                              "parentKeyName": "Policy1",
+                                              "parentKeyVersion": "0.0.1",
+                                              "parentLocalName": "Match",
+                                              "localName": "Match_Establish"
+                                            }
+                                          }
+                                        }
+                                      ]
+                                    }
+                                  }
+                                }
+                              ]
+                            },
+                            "firstState": "Match"
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "tasks": {
+                    "key": {
+                      "name": "Tasks",
+                      "version": "0.0.1"
+                    },
+                    "taskMap": {
+                      "entry": [
+                        {
+                          "key": {
+                            "name": "Task_Act0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act0",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestActCaseSelected",
+                                  "value": {
+                                    "key": "TestActCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestActStateTime",
+                                  "value": {
+                                    "key": "TestActStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter2",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter2"
+                                    },
+                                    "defaultValue": "DefaultValue2"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act1",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestActCaseSelected",
+                                  "value": {
+                                    "key": "TestActCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestActStateTime",
+                                  "value": {
+                                    "key": "TestActStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act2",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestActCaseSelected",
+                                  "value": {
+                                    "key": "TestActCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestActStateTime",
+                                  "value": {
+                                    "key": "TestActStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act2",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Act3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Act3",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestActCaseSelected",
+                                  "value": {
+                                    "key": "TestActCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestActStateTime",
+                                  "value": {
+                                    "key": "TestActStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Act3",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide0",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter2",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter2"
+                                    },
+                                    "defaultValue": "DefaultValue2"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide1",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide2",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide2",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Decide3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Decide3",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Decide3",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish0",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter2",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter2"
+                                    },
+                                    "defaultValue": "DefaultValue2"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish1",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish2",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish2",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Establish3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Establish3",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Establish3",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match0",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match0",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter2",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match0",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter2"
+                                    },
+                                    "defaultValue": "DefaultValue2"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match1",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match1",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                },
+                                {
+                                  "key": "Parameter1",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match1",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter1"
+                                    },
+                                    "defaultValue": "DefaultValue1"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy0ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match2",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match2",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match2",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "Policy1ContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Task_Match3",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Task_Match3",
+                              "version": "0.0.1"
+                            },
+                            "inputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "outputFields": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            },
+                            "taskParameters": {
+                              "entry": [
+                                {
+                                  "key": "Parameter0",
+                                  "value": {
+                                    "key": {
+                                      "parentKeyName": "Task_Match3",
+                                      "parentKeyVersion": "0.0.1",
+                                      "parentLocalName": "NULL",
+                                      "localName": "Parameter0"
+                                    },
+                                    "defaultValue": "DefaultValue0"
+                                  }
+                                }
+                              ]
+                            },
+                            "contextAlbumReference": [
+                              {
+                                "name": "ExternalContextAlbum",
+                                "version": "0.0.1"
+                              },
+                              {
+                                "name": "GlobalContextAlbum",
+                                "version": "0.0.1"
+                              }
+                            ],
+                            "taskLogic": {
+                              "key": "_TaskLogic",
+                              "logicFlavour": "JAVASCRIPT",
+                              "logic": "/*\n * ============LICENSE_START=======================================================\n *  Copyright (C) 2016-2018 Ericsson. All rights reserved.\n * ================================================================================\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n * \n *      http://www.apache.org/licenses/LICENSE-2.0\n * \n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * \n * SPDX-License-Identifier: Apache-2.0\n * ============LICENSE_END=========================================================\n */\n\nexecutor.logger.debug(executor.subject.id);\nvar gc = executor.getContextAlbum(\"GlobalContextAlbum\");\nexecutor.logger.debug(gc.name);\nexecutor.logger.debug(executor.inFields);\n\nvar caseSelectedType = java.lang.Byte;\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = java.util.Date;\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\ntrue;"
+                            }
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "events": {
+                    "key": {
+                      "name": "Events",
+                      "version": "0.0.1"
+                    },
+                    "eventMap": {
+                      "entry": [
+                        {
+                          "key": {
+                            "name": "Event0000",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0000",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Outside",
+                            "target": "Match",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0001",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0001",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Match",
+                            "target": "Establish",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0002",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0002",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Establish",
+                            "target": "Decide",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0003",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0003",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Decide",
+                            "target": "Act",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0004",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0004",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Act",
+                            "target": "Outside",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestActCaseSelected",
+                                  "value": {
+                                    "key": "TestActCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestActStateTime",
+                                  "value": {
+                                    "key": "TestActStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0100",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0100",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Outside",
+                            "target": "Match",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0101",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0101",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Match",
+                            "target": "Establish",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0102",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0102",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Establish",
+                            "target": "Decide",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0103",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0103",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Decide",
+                            "target": "Act",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Event0104",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Event0104",
+                              "version": "0.0.1"
+                            },
+                            "nameSpace": "org.onap.policy.apex.sample.events",
+                            "source": "Act",
+                            "target": "Outside",
+                            "parameter": {
+                              "entry": [
+                                {
+                                  "key": "TestActCaseSelected",
+                                  "value": {
+                                    "key": "TestActCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestActStateTime",
+                                  "value": {
+                                    "key": "TestActStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideCaseSelected",
+                                  "value": {
+                                    "key": "TestDecideCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestDecideStateTime",
+                                  "value": {
+                                    "key": "TestDecideStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishCaseSelected",
+                                  "value": {
+                                    "key": "TestEstablishCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestEstablishStateTime",
+                                  "value": {
+                                    "key": "TestEstablishStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCase",
+                                  "value": {
+                                    "key": "TestMatchCase",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchCaseSelected",
+                                  "value": {
+                                    "key": "TestMatchCaseSelected",
+                                    "fieldSchemaKey": {
+                                      "name": "TestCase",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestMatchStateTime",
+                                  "value": {
+                                    "key": "TestMatchStateTime",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestSlogan",
+                                  "value": {
+                                    "key": "TestSlogan",
+                                    "fieldSchemaKey": {
+                                      "name": "TestSlogan",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTemperature",
+                                  "value": {
+                                    "key": "TestTemperature",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTemperature",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                },
+                                {
+                                  "key": "TestTimestamp",
+                                  "value": {
+                                    "key": "TestTimestamp",
+                                    "fieldSchemaKey": {
+                                      "name": "TestTimestamp",
+                                      "version": "0.0.1"
+                                    },
+                                    "optional": false
+                                  }
+                                }
+                              ]
+                            }
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "albums": {
+                    "key": {
+                      "name": "Context",
+                      "version": "0.0.1"
+                    },
+                    "albums": {
+                      "entry": [
+                        {
+                          "key": {
+                            "name": "ExternalContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "ExternalContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "scope": "EXTERNAL",
+                            "isWritable": false,
+                            "itemSchema": {
+                              "name": "TestExternalContextItem",
+                              "version": "0.0.1"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "GlobalContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "GlobalContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "scope": "GLOBAL",
+                            "isWritable": true,
+                            "itemSchema": {
+                              "name": "TestGlobalContextItem",
+                              "version": "0.0.1"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy0ContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policy0ContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "scope": "APPLICATION",
+                            "isWritable": true,
+                            "itemSchema": {
+                              "name": "TestPolicyContextItem",
+                              "version": "0.0.1"
+                            }
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "Policy1ContextAlbum",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "Policy1ContextAlbum",
+                              "version": "0.0.1"
+                            },
+                            "scope": "APPLICATION",
+                            "isWritable": true,
+                            "itemSchema": {
+                              "name": "TestPolicyContextItem",
+                              "version": "0.0.1"
+                            }
+                          }
+                        }
+                      ]
+                    }
+                  },
+                  "schemas": {
+                    "key": {
+                      "name": "TestDatatypes",
+                      "version": "0.0.1"
+                    },
+                    "schemas": {
+                      "entry": [
+                        {
+                          "key": {
+                            "name": "TestCase",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestCase",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "java.lang.Byte"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem000",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem000",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem000"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem001",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem001",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem001"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem002",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem002",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem002"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem003",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem003",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem003"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem004",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem004",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem004"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem005",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem005",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem005"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem006",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem006",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem006"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem007",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem007",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem007"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem008",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem008",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem008"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem009",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem009",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem009"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem00A",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem00A",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem00A"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem00B",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem00B",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem00B"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestContextItem00C",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestContextItem00C",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestContextItem00C"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestExternalContextItem",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestExternalContextItem",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestExternalContextItem"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestGlobalContextItem",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestGlobalContextItem",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestGlobalContextItem"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestPolicyContextItem",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestPolicyContextItem",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "org.onap.policy.apex.context.test.concepts.TestPolicyContextItem"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestSlogan",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestSlogan",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "java.lang.String"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestTemperature",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestTemperature",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "java.lang.Double"
+                          }
+                        },
+                        {
+                          "key": {
+                            "name": "TestTimestamp",
+                            "version": "0.0.1"
+                          },
+                          "value": {
+                            "key": {
+                              "name": "TestTimestamp",
+                              "version": "0.0.1"
+                            },
+                            "schemaFlavour": "Java",
+                            "schemaDefinition": "java.lang.Long"
+                          }
+                        }
+                      ]
+                    }
+                  }
+                }
+              },
+              "engineParameters": {
+                "executorParameters": {
+                  "JAVASCRIPT": {
+                    "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
+                  }
+                }
+              }
+            },
+            "eventInputParameters": {
+              "FirstConsumer": {
+                "carrierTechnologyParameters": {
+                  "carrierTechnology": "RESTSERVER",
+                  "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restserver.RestServerCarrierTechnologyParameters",
+                  "parameters": {
+                    "standalone": true,
+                    "host": "0.0.0.0",
+                    "port": 23324
+                  }
+                },
+                "eventProtocolParameters": {
+                  "eventProtocol": "JSON"
+                },
+                "synchronousMode": true,
+                "synchronousPeer": "FirstProducer",
+                "synchronousTimeout": 2000
+              }
+            },
+            "eventOutputParameters": {
+              "FirstProducer": {
+                "carrierTechnologyParameters": {
+                  "carrierTechnology": "RESTSERVER",
+                  "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restserver.RestServerCarrierTechnologyParameters"
+                },
+                "eventProtocolParameters": {
+                  "eventProtocol": "JSON"
+                },
+                "synchronousMode": true,
+                "synchronousPeer": "FirstConsumer",
+                "synchronousTimeout": 2000
+              }
+            }
+          }
+        }
+      }
+    ]
+  }
+}
diff --git a/csit/apex-pdp/tests/data/pdp_update.json b/csit/apex-pdp/tests/data/pdp_update.json
new file mode 100644 (file)
index 0000000..51c3573
--- /dev/null
@@ -0,0 +1,17 @@
+{
+    "groups": [
+        {
+            "name": "defaultGroup",
+            "deploymentSubgroups": [
+                {
+                    "pdpType": "apex",
+                    "action": "POST",
+                    "policies": [{
+                            "name": "onap.policies.native.apex.Sampledomain",
+                            "version": "1.0.0"
+                        }]
+                }
+            ]
+        }
+    ]
+}
diff --git a/csit/api/plans/setup.sh b/csit/api/plans/setup.sh
new file mode 100644 (file)
index 0000000..65d71e9
--- /dev/null
@@ -0,0 +1,65 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+# Select branch
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+
+sudo apt-get -y install libxml2-utils
+bash ${SCRIPTS}/get-models-examples.sh
+
+source ${SCRIPTS}/detmVers.sh
+
+DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies
+
+# create a couple of variations of the policy definitions
+sed -e 's!Measurement_vGMUX!ADifferentValue!' \
+        ${DATA}/vCPE.policy.monitoring.input.tosca.json \
+    >${DATA}/vCPE.policy.monitoring.input.tosca.v1_2.json
+
+sed -e 's!"version": "1.0.0"!"version": "2.0.0"!' \
+        -e 's!"policy-version": 1!"policy-version": 2!' \
+        ${DATA}/vCPE.policy.monitoring.input.tosca.json \
+    >${DATA}/vCPE.policy.monitoring.input.tosca.v2.json
+
+echo ${POLICY_API_VERSION}
+
+cd ${SCRIPTS}
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d api
+
+sleep 10
+unset http_proxy https_proxy
+
+POLICY_API_IP=`get-instance-ip.sh policy-api`
+MARIADB_IP=`get-instance-ip.sh mariadb`
+
+echo API IP IS ${POLICY_API_IP}
+echo MARIADB IP IS ${MARIADB_IP}
+
+# wait for the app to start up
+${SCRIPTS}/wait_for_port.sh ${POLICY_API_IP} 6969
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}"
diff --git a/csit/api/plans/teardown.sh b/csit/api/plans/teardown.sh
new file mode 100755 (executable)
index 0000000..e101973
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/api/plans/testplan.txt b/csit/api/plans/testplan.txt
new file mode 100644 (file)
index 0000000..ed3f8f6
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/api.git]/csit/tests/.
+# Place the suites in run order.
+api-test.robot
diff --git a/csit/api/tests/api-test.robot b/csit/api/tests/api-test.robot
new file mode 100644 (file)
index 0000000..2123b1e
--- /dev/null
@@ -0,0 +1,138 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Test Cases ***
+
+Healthcheck
+     [Documentation]  Verify policy api health check
+     ${resp}=  PeformGetRequest  /policy/api/v1/healthcheck  200
+     Should Be Equal As Strings  ${resp.json()['code']}  200
+
+Statistics
+     [Documentation]  Verify policy api statistics
+     ${resp}=  PeformGetRequest  /policy/api/v1/statistics  200
+     Should Be Equal As Strings  ${resp.json()['code']}  200
+
+RetrievePolicyTypes
+     [Documentation]  Retrieve all policy types
+     FetchPolicyTypes  /policy/api/v1/policytypes  37
+
+CreateTCAPolicyTypeV1
+     [Documentation]  Create an existing policy type with modification and keeping the same version should result in error.
+     CreatePolicyType  /policy/api/v1/policytypes  406  onap.policy.monitoring.tcagen2.v1.json  null  null
+
+CreateTCAPolicyTypeV2
+     [Documentation]  Create a policy type named 'onap.policies.monitoring.tcagen2' and version '2.0.0'
+     CreatePolicyType  /policy/api/v1/policytypes  200  onap.policy.monitoring.tcagen2.v2.json  onap.policies.monitoring.tcagen2  2.0.0
+
+RetrieveMonitoringPolicyTypes
+     [Documentation]  Retrieve all monitoring related policy types
+     FetchPolicyTypes  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2  2
+
+CreateNewMonitoringPolicyV1
+     [Documentation]  Create a policy named 'onap.restart.tca' and version '1.0.0' using specific api
+     CreatePolicy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  200  vCPE.policy.monitoring.input.tosca.json  onap.restart.tca  1.0.0
+
+CreateNewMonitoringPolicyV1Again
+     [Documentation]  Create an existing policy with modification and keeping the same version should result in error.
+     CreatePolicy  /policy/api/v1/policies  406  vCPE.policy.monitoring.input.tosca.v1_2.json  null  null
+
+CreateNewMonitoringPolicyV2
+     [Documentation]  Create a policy named 'onap.restart.tca' and version '2.0.0' using generic api
+     CreatePolicy  /policy/api/v1/policies  200  vCPE.policy.monitoring.input.tosca.v2.json  onap.restart.tca  2.0.0
+
+RetrievePoliciesOfType
+     [Documentation]  Retrieve all policies belonging to a specific Policy Type
+     FetchPolicies  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies  2
+
+RetrieveAllPolicies
+     [Documentation]  Retrieve all policies
+     FetchPolicies  /policy/api/v1/policies  3
+
+RetrieveSpecificPolicy
+     [Documentation]    Retrieve a policy named 'onap.restart.tca' and version '1.0.0' using generic api
+     FetchPolicy  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0  onap.restart.tca
+
+DeleteSpecificPolicy
+     [Documentation]  Delete a policy named 'onap.restart.tca' and version '1.0.0' using generic api
+     PeformDeleteRequest  /policy/api/v1/policies/onap.restart.tca/versions/1.0.0
+
+DeleteSpecificPolicyV2
+     [Documentation]  Delete a policy named 'onap.restart.tca' and version '2.0.0' using specific api
+     PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies/onap.restart.tca/versions/2.0.0
+
+DeleteSpecificPolicyTypeV1
+     [Documentation]  Delete a policy type named 'onap.policies.monitoring.tcagen2' and version '1.0.0'
+     PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0
+
+DeleteSpecificPolicyTypeV2
+     [Documentation]  Delete a policy type named 'onap.policies.monitoring.tcagen2' and version '2.0.0'
+     PeformDeleteRequest  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/2.0.0
+
+*** Keywords ***
+
+CreatePolicyType
+     [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policytypename}  ${policytypeversion}
+     [Documentation]  Create the specific policy type
+     ${resp}=  PerformCreateRequest  ${url}  ${expectedstatus}  ${jsonfile}  ${CURDIR}/data
+     Run Keyword If  ${expectedstatus}==200  List Should Contain Value  ${resp.json()['policy_types']}  ${policytypename}
+     Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['policy_types']['${policytypename}']['version']}  ${policytypeversion}
+
+FetchPolicyTypes
+     [Arguments]  ${url}  ${expectedLength}
+     [Documentation]  Fetch all policy types
+     ${resp}=  PeformGetRequest  ${url}  200
+     Length Should Be  ${resp.json()['policy_types']}  ${expectedLength}
+
+CreatePolicy
+     [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${policyname}  ${policyversion}
+     [Documentation]  Create the specific policy
+     ${resp}=  PerformCreateRequest  ${url}  ${expectedstatus}  ${jsonfile}  ${DATA}
+     Run Keyword If  ${expectedstatus}==200  Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${policyname}
+     Run Keyword If  ${expectedstatus}==200  Should Be Equal As Strings  ${resp.json()['topology_template']['policies'][0]['${policyname}']['version']}  ${policyversion}
+
+FetchPolicy
+     [Arguments]  ${url}  ${keyword}
+     [Documentation]  Fetch the specific policy
+     ${resp}=  PeformGetRequest  ${url}  200
+     Dictionary Should Contain Key  ${resp.json()['topology_template']['policies'][0]}  ${keyword}
+
+FetchPolicies
+     [Arguments]  ${url}  ${expectedLength}
+     [Documentation]  Fetch all policies
+     ${resp}=  PeformGetRequest  ${url}  200
+     Length Should Be  ${resp.json()['topology_template']['policies']}  ${expectedLength}
+
+PerformCreateRequest
+     [Arguments]  ${url}  ${expectedstatus}  ${jsonfile}  ${filepath}
+     ${auth}=  Create List  healthcheck  zb!XztG34
+     ${postjson}=  Get file  ${filepath}/${jsonfile}
+     Log  Creating session https://${POLICY_API_IP}:6969
+     ${session}=  Create Session  policy  https://${POLICY_API_IP}:6969  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+     ${resp}=  POST On Session  policy  ${url}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}
+
+PeformGetRequest
+     [Arguments]  ${url}  ${expectedstatus}
+     ${auth}=  Create List  healthcheck  zb!XztG34
+     Log  Creating session https://${POLICY_API_IP}:6969
+     ${session}=  Create Session  policy  https://${POLICY_API_IP}:6969  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+     ${resp}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}
+
+PeformDeleteRequest
+     [Arguments]  ${url}
+     ${auth}=  Create List  healthcheck  zb!XztG34
+     Log  Creating session https://${POLICY_API_IP}:6969
+     ${session}=  Create Session  policy  https://${POLICY_API_IP}:6969  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+     ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=200
+     Log  Received response from policy ${resp.text}
+     ${resp}=  DELETE On Session  policy  ${url}  headers=${headers}  expected_status=404
diff --git a/csit/api/tests/data/onap.policy.monitoring.tcagen2.v1.json b/csit/api/tests/data/onap.policy.monitoring.tcagen2.v1.json
new file mode 100644 (file)
index 0000000..a2e2ddc
--- /dev/null
@@ -0,0 +1,211 @@
+{
+  "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+  "policy_types": {
+    "onap.policies.Monitoring": {
+      "derived_from": "tosca.policies.Root",
+      "version": "1.0.0",
+      "description": "a base policy type for all policies that governs monitoring provisioning"
+    },
+    "onap.policies.monitoring.tcagen2": {
+      "derived_from": "onap.policies.Monitoring",
+      "version": "1.0.0",
+      "properties": {
+        "tca.policy": {
+          "type": "onap.datatypes.monitoring.tca_policy",
+          "description": "TCA Policy JSON"
+        }
+      }
+    }
+  },
+  "data_types": {
+    "onap.datatypes.monitoring.metricsPerEventName": {
+      "derived_from": "tosca.datatypes.Root",
+      "properties": {
+        "controlLoopSchemaType": {
+          "type": "string",
+          "required": true,
+          "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+          "constraints": [
+            {
+              "valid_values": [
+                "VM",
+                "VNF"
+              ]
+            }
+          ]
+        },
+        "eventName": {
+          "type": "string",
+          "required": true,
+          "description": "Event name to which thresholds need to be applied"
+        },
+        "policyName": {
+          "type": "string",
+          "required": true,
+          "description": "TCA Policy Scope Name"
+        },
+        "policyScope": {
+          "type": "string",
+          "required": true,
+          "description": "TCA Policy Scope"
+        },
+        "policyVersion": {
+          "type": "string",
+          "required": true,
+          "description": "TCA Policy Scope Version"
+        },
+        "thresholds": {
+          "type": "list",
+          "required": true,
+          "description": "Thresholds associated with eventName",
+          "entry_schema": {
+            "type": "onap.datatypes.monitoring.thresholds"
+          }
+        }
+      }
+    },
+    "onap.datatypes.monitoring.tca_policy": {
+      "derived_from": "tosca.datatypes.Root",
+      "properties": {
+        "domain": {
+          "type": "string",
+          "required": true,
+          "description": "Domain name to which TCA needs to be applied",
+          "default": "measurementsForVfScaling",
+          "constraints": [
+            {
+              "equal": "measurementsForVfScaling"
+            }
+          ]
+        },
+        "metricsPerEventName": {
+          "type": "list",
+          "required": true,
+          "description": "Contains eventName and threshold details that need to be applied to given eventName",
+          "entry_schema": {
+            "type": "onap.datatypes.monitoring.metricsPerEventName"
+          }
+        }
+      }
+    },
+    "onap.datatypes.monitoring.thresholds": {
+      "derived_from": "tosca.datatypes.Root",
+      "properties": {
+        "closedLoopControlName": {
+          "type": "string",
+          "required": true,
+          "description": "Closed Loop Control Name associated with the threshold"
+        },
+        "closedLoopEventStatus": {
+          "type": "string",
+          "required": true,
+          "description": "Closed Loop Event Status of the threshold",
+          "constraints": [
+            {
+              "valid_values": [
+                "ONSET",
+                "ABATED"
+              ]
+            }
+          ]
+        },
+        "direction": {
+          "type": "string",
+          "required": true,
+          "description": "Direction of the threshold",
+          "constraints": [
+            {
+              "valid_values": [
+                "LESS",
+                "LESS_OR_EQUAL",
+                "GREATER",
+                "GREATER_OR_EQUAL",
+                "EQUAL"
+              ]
+            }
+          ]
+        },
+        "fieldPath": {
+          "type": "string",
+          "required": true,
+          "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
+          "constraints": [
+            {
+              "valid_values": [
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
+                "$.event.measurementsForVfScalingFields.meanRequestLatency",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
+                "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
+              ]
+            }
+          ]
+        },
+        "severity": {
+          "type": "string",
+          "required": true,
+          "description": "Threshold Event Severity",
+          "constraints": [
+            {
+              "valid_values": [
+                "CRITICAL",
+                "MAJOR",
+                "MINOR",
+                "WARNING",
+                "NORMAL"
+              ]
+            }
+          ]
+        },
+        "thresholdValue": {
+          "type": "integer",
+          "required": true,
+          "description": "Threshold value for the field Path inside CEF message"
+        },
+        "version": {
+          "type": "string",
+          "required": true,
+          "description": "Version number associated with the threshold"
+        }
+      }
+    }
+  }
+}
diff --git a/csit/api/tests/data/onap.policy.monitoring.tcagen2.v2.json b/csit/api/tests/data/onap.policy.monitoring.tcagen2.v2.json
new file mode 100644 (file)
index 0000000..d86749e
--- /dev/null
@@ -0,0 +1,206 @@
+{
+  "tosca_definitions_version": "tosca_simple_yaml_1_1_0",
+  "policy_types": {
+    "onap.policies.monitoring.tcagen2": {
+      "derived_from": "onap.policies.Monitoring",
+      "version": "2.0.0",
+      "properties": {
+        "tca.policy": {
+          "type": "onap.datatypes.monitoring.tca_policy",
+          "description": "TCA Policy JSON"
+        }
+      }
+    }
+  },
+  "data_types": {
+    "onap.datatypes.monitoring.metricsPerEventName": {
+      "derived_from": "tosca.datatypes.Root",
+      "properties": {
+        "controlLoopSchemaType": {
+          "type": "string",
+          "required": true,
+          "description": "Specifies Control Loop Schema Type for the event Name e.g. VNF, VM",
+          "constraints": [
+            {
+              "valid_values": [
+                "VM",
+                "VNF"
+              ]
+            }
+          ]
+        },
+        "eventName": {
+          "type": "string",
+          "required": true,
+          "description": "Event name to which thresholds need to be applied"
+        },
+        "policyName": {
+          "type": "string",
+          "required": true,
+          "description": "TCA Policy Scope Name"
+        },
+        "policyScope": {
+          "type": "string",
+          "required": true,
+          "description": "TCA Policy Scope"
+        },
+        "policyVersion": {
+          "type": "string",
+          "required": true,
+          "description": "TCA Policy Scope Version"
+        },
+        "thresholds": {
+          "type": "list",
+          "required": true,
+          "description": "Thresholds associated with eventName",
+          "entry_schema": {
+            "type": "onap.datatypes.monitoring.thresholds"
+          }
+        }
+      }
+    },
+    "onap.datatypes.monitoring.tca_policy": {
+      "derived_from": "tosca.datatypes.Root",
+      "properties": {
+        "domain": {
+          "type": "string",
+          "required": true,
+          "description": "Domain name to which TCA needs to be applied",
+          "default": "measurementsForVfScaling",
+          "constraints": [
+            {
+              "equal": "measurementsForVfScaling"
+            }
+          ]
+        },
+        "metricsPerEventName": {
+          "type": "list",
+          "required": true,
+          "description": "Contains eventName and threshold details that need to be applied to given eventName",
+          "entry_schema": {
+            "type": "onap.datatypes.monitoring.metricsPerEventName"
+          }
+        }
+      }
+    },
+    "onap.datatypes.monitoring.thresholds": {
+      "derived_from": "tosca.datatypes.Root",
+      "properties": {
+        "closedLoopControlName": {
+          "type": "string",
+          "required": true,
+          "description": "Closed Loop Control Name associated with the threshold"
+        },
+        "closedLoopEventStatus": {
+          "type": "string",
+          "required": true,
+          "description": "Closed Loop Event Status of the threshold",
+          "constraints": [
+            {
+              "valid_values": [
+                "ONSET",
+                "ABATED"
+              ]
+            }
+          ]
+        },
+        "direction": {
+          "type": "string",
+          "required": true,
+          "description": "Direction of the threshold",
+          "constraints": [
+            {
+              "valid_values": [
+                "LESS",
+                "LESS_OR_EQUAL",
+                "GREATER",
+                "GREATER_OR_EQUAL",
+                "EQUAL"
+              ]
+            }
+          ]
+        },
+        "fieldPath": {
+          "type": "string",
+          "required": true,
+          "description": "Json field Path as per CEF message which needs to be analyzed for TCA",
+          "constraints": [
+            {
+              "valid_values": [
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedOctetsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedUnicastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedMulticastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedBroadcastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedDiscardedPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedErrorPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsDelta",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedTotalPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedOctetsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedUnicastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedMulticastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedBroadcastPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedDiscardedPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].transmittedErrorPacketsAccumulated",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuIdle",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageInterrupt",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageNice",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSoftIrq",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSteal",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuUsageSystem",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].cpuWait",
+                "$.event.measurementsForVfScalingFields.cpuUsageArray[*].percentUsage",
+                "$.event.measurementsForVfScalingFields.meanRequestLatency",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryBuffered",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryCached",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryConfigured",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryFree",
+                "$.event.measurementsForVfScalingFields.memoryUsageArray[*].memoryUsed",
+                "$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value"
+              ]
+            }
+          ]
+        },
+        "severity": {
+          "type": "string",
+          "required": true,
+          "description": "Threshold Event Severity",
+          "constraints": [
+            {
+              "valid_values": [
+                "CRITICAL",
+                "MAJOR",
+                "MINOR",
+                "WARNING",
+                "NORMAL"
+              ]
+            }
+          ]
+        },
+        "thresholdValue": {
+          "type": "integer",
+          "required": true,
+          "description": "Threshold value for the field Path inside CEF message"
+        },
+        "version": {
+          "type": "string",
+          "required": true,
+          "description": "Version number associated with the threshold"
+        }
+      }
+    }
+  }
+}
diff --git a/csit/distribution/config/csar/sample_csar_with_apex_policy.csar b/csit/distribution/config/csar/sample_csar_with_apex_policy.csar
new file mode 100644 (file)
index 0000000..4d293e4
Binary files /dev/null and b/csit/distribution/config/csar/sample_csar_with_apex_policy.csar differ
diff --git a/csit/distribution/plans/setup.sh b/csit/distribution/plans/setup.sh
new file mode 100644 (file)
index 0000000..664cb69
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2018 Ericsson. All rights reserved.
+#
+#  Modifications copyright (c) 2019 Nordix Foundation.
+#  Modifications Copyright (C) 2020-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+sudo apt-get -y install libxml2-utils
+
+source ${SCRIPTS}/detmVers.sh
+
+SCRIPT_DIR=${TESTPLANDIR}/config
+
+# Remaking the csar file in case if the file got corrupted
+zip -F ${SCRIPT_DIR}/csar/sample_csar_with_apex_policy.csar --out ${SCRIPT_DIR}/csar/csar_temp.csar
+
+# Remake temp directory
+rm -rf ${SCRIPT_DIR}/temp
+mkdir ${SCRIPT_DIR}/temp
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d distribution
+
+unset http_proxy https_proxy
+
+POLICY_API_IP=`get-instance-ip.sh policy-api`
+POLICY_PAP_IP=`get-instance-ip.sh policy-pap`
+MARIADB_IP=`get-instance-ip.sh mariadb`
+APEX_IP=`get-instance-ip.sh policy-apex-pdp`
+DMAAP_IP=`get-instance-ip.sh policy.api.simpledemo.onap.org`
+POLICY_DISTRIBUTION_IP=`get-instance-ip.sh policy-distribution`
+
+echo PAP IP IS ${POLICY_PAP_IP}
+echo MARIADB IP IS ${MARIADB_IP}
+echo API IP IS ${POLICY_API_IP}
+echo APEX IP IS ${APEX_IP}
+echo DMAAP_IP IS ${DMAAP_IP}
+echo POLICY_DISTRIBUTION_IP IS ${POLICY_DISTRIBUTION_IP}
+
+# wait for the app to start up
+${SCRIPTS}/wait_for_port.sh ${POLICY_DISTRIBUTION_IP} 6969
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v APEX_IP:${APEX_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v SCRIPT_DIR:${SCRIPT_DIR}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_DISTRIBUTION_IP:${POLICY_DISTRIBUTION_IP}"
diff --git a/csit/distribution/plans/teardown.sh b/csit/distribution/plans/teardown.sh
new file mode 100644 (file)
index 0000000..f47fcd8
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2018 Ericsson. All rights reserved.
+#
+#  Modifications copyright (c) 2019 Nordix Foundation.
+#  Modifications Copyright (C) 2020-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/distribution/plans/testplan.txt b/csit/distribution/plans/testplan.txt
new file mode 100644 (file)
index 0000000..de61eab
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/distribution.git]/csit/tests/.
+# Place the suites in run order.
+distribution-test.robot
diff --git a/csit/distribution/tests/data/event.json b/csit/distribution/tests/data/event.json
new file mode 100644 (file)
index 0000000..9dbf279
--- /dev/null
@@ -0,0 +1,11 @@
+{
+    "nameSpace": "org.onap.policy.apex.sample.events",
+    "name": "Event0000",
+    "version": "0.0.1",
+    "source": "REST_0",
+    "target": "apex",
+    "TestSlogan": "Test slogan for External Event0",
+    "TestMatchCase": 3,
+    "TestTimestamp": 1536363522018,
+    "TestTemperature": 9080.866
+}
diff --git a/csit/distribution/tests/distribution-test.robot b/csit/distribution/tests/distribution-test.robot
new file mode 100644 (file)
index 0000000..64a77e0
--- /dev/null
@@ -0,0 +1,42 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Test Cases ***
+
+Healthcheck
+     [Documentation]  Verify policy distribution health check
+     ${resp}=  PeformGetRequest  /healthcheck  200
+     Should Be Equal As Strings  ${resp.json()['code']}  200
+
+Statistics
+     [Documentation]  Verify policy distribution statistics
+     ${resp}=  PeformGetRequest  /statistics  200
+     Should Be Equal As Strings  ${resp.json()['code']}  200
+
+InvokeDistributionAndRunEventOnEngine
+     Wait Until Keyword Succeeds  5 min  30 sec  InvokeDistributionUsingFile And RunEventOnApexEngine
+
+*** Keywords ***
+
+InvokeDistributionUsingFile And RunEventOnApexEngine
+    Copy File  ${SCRIPT_DIR}/csar/csar_temp.csar  ${SCRIPT_DIR}/csar/temp.csar
+    Move File  ${SCRIPT_DIR}/csar/temp.csar  ${SCRIPT_DIR}/temp/sample_csar_with_apex_policy.csar
+    Sleep  20 seconds  "Waiting for the Policy Distribution to call Policy API and PAP"
+    Create Session  apexSession  http://${APEX_IP}:23324  max_retries=1
+    ${data}=  Get Binary File  ${CURDIR}${/}data${/}event.json
+    &{headers}=  Create Dictionary  Content-Type=application/json  Accept=application/json
+    ${resp}=  PUT On Session  apexSession  /apex/FirstConsumer/EventIn  data=${data}  headers=${headers}  expected_status=200
+    Remove Files  ${SCRIPT_DIR}/temp/sample_csar_with_apex_policy.csar
+
+PeformGetRequest
+     [Arguments]  ${url}  ${expectedstatus}
+     ${auth}=  Create List  healthcheck  zb!XztG34
+     Log  Creating session https://${POLICY_DISTRIBUTION_IP}:6969
+     ${session}=  Create Session  policy  https://${POLICY_DISTRIBUTION_IP}:6969  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+     ${resp}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}
diff --git a/csit/drools-applications/plans/setup.sh b/csit/drools-applications/plans/setup.sh
new file mode 100755 (executable)
index 0000000..02d854c
--- /dev/null
@@ -0,0 +1,65 @@
+#!/bin/bash
+#
+# ===========LICENSE_START====================================================
+#  Copyright (C) 2019-2021 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=====================================================
+#
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+sudo apt-get -y install libxml2-utils
+
+bash ${SCRIPTS}/get-models-examples.sh
+source ${SCRIPTS}/detmVers.sh
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d drools-apps
+
+unset http_proxy https_proxy
+
+DROOLS_IP=`get-instance-ip.sh drools-apps`
+API_IP=`get-instance-ip.sh policy-api`
+PAP_IP=`get-instance-ip.sh policy-pap`
+XACML_IP=`get-instance-ip.sh policy-xacml-pdp`
+SIM_IP=`get-instance-ip.sh policy.api.simpledemo.onap.org`
+export SIM_IP
+
+echo DROOLS IP IS ${DROOLS_IP}
+echo API IP IS ${API_IP}
+echo PAP IP IS ${PAP_IP}
+echo XACML IP IS ${XACML_IP}
+echo SIMULATORS IP IS ${SIM_IP}
+
+# wait for the app to start up
+${SCRIPTS}/wait_for_port.sh ${DROOLS_IP} 6969
+
+# give enough time for the controllers to come up
+sleep 15
+
+DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies
+DATA2=${TESTPLANDIR}/tests/data
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v SCR2:${SCRIPTS}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA2:${DATA2}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DROOLS_IP:${DROOLS_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v API_IP:${API_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v PAP_IP:${PAP_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v XACML_IP:${XACML_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v SIM_IP:${SIM_IP}"
diff --git a/csit/drools-applications/plans/teardown.sh b/csit/drools-applications/plans/teardown.sh
new file mode 100755 (executable)
index 0000000..ce89740
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+#
+# ===========LICENSE_START====================================================
+#  Copyright (C) 2020-2021 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=====================================================
+#
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/drools-applications/plans/testplan.txt b/csit/drools-applications/plans/testplan.txt
new file mode 100644 (file)
index 0000000..7acf3cd
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/drools-applications.git]/tests/.
+# Place the suites in run order.
+drools-applications-test.robot
diff --git a/csit/drools-applications/tests/data/deploy.drools.policies.json b/csit/drools-applications/tests/data/deploy.drools.policies.json
new file mode 100644 (file)
index 0000000..24c90d0
--- /dev/null
@@ -0,0 +1,27 @@
+{
+    "groups": [
+        {
+            "name": "defaultGroup",
+            "deploymentSubgroups": [
+                {
+                    "pdpType": "drools",
+                    "action": "POST",
+                    "policies": [
+                        {
+                            "name": "operational.restart",
+                            "version": "1.0.0"
+                        },
+                        {
+                            "name": "operational.scaleout",
+                            "version": "1.0.0"
+                        },
+                        {
+                            "name": "operational.modifyconfig",
+                            "version": "1.0.0"
+                        }
+                    ]
+                }
+            ]
+        }
+    ]
+}
diff --git a/csit/drools-applications/tests/data/deploy.xacml.policies.json b/csit/drools-applications/tests/data/deploy.xacml.policies.json
new file mode 100644 (file)
index 0000000..46da902
--- /dev/null
@@ -0,0 +1,27 @@
+{
+    "groups": [
+        {
+            "name": "defaultGroup",
+            "deploymentSubgroups": [
+                {
+                    "pdpType": "xacml",
+                    "action": "POST",
+                    "policies": [
+                        {
+                            "name": "onap.restart.tca",
+                            "version": "1.0.0"
+                        },
+                        {
+                            "name": "onap.scaleout.tca",
+                            "version": "1.0.0"
+                        },
+                        {
+                            "name": "onap.vfirewall.tca",
+                            "version": "1.0.0"
+                        }
+                    ]
+                }
+            ]
+        }
+    ]
+}
diff --git a/csit/drools-applications/tests/data/vcpeOnset.json b/csit/drools-applications/tests/data/vcpeOnset.json
new file mode 100644 (file)
index 0000000..7dd9d5a
--- /dev/null
@@ -0,0 +1,16 @@
+{
+  "closedLoopControlName": "ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e",
+  "closedLoopAlarmStart": 1463679805324,
+  "closedLoopEventClient": "DCAE_INSTANCE_ID.dcae-tca",
+  "closedLoopEventStatus": "ONSET",
+  "requestID": "664be3d2-6c12-4f4b-a3e7-c349acced200",
+  "target_type": "VNF",
+  "target": "generic-vnf.vnf-id",
+  "AAI": {
+    "vserver.is-closed-loop-disabled": "false",
+    "vserver.prov-status": "ACTIVE",
+    "generic-vnf.vnf-id": "vCPE_Infrastructure_vGMUX_demo_app"
+  },
+  "from": "DCAE",
+  "version": "1.0.2"
+}
diff --git a/csit/drools-applications/tests/data/vdnsOnset.json b/csit/drools-applications/tests/data/vdnsOnset.json
new file mode 100644 (file)
index 0000000..13f6909
--- /dev/null
@@ -0,0 +1,16 @@
+{
+  "closedLoopControlName": "ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3",
+  "closedLoopAlarmStart": 1463679805324,
+  "closedLoopEventClient": "microservice.stringmatcher",
+  "closedLoopEventStatus": "ONSET",
+  "requestID": "c7c6a4aa-bb61-4a15-b831-ba1472dd4a65",
+  "target_type": "VNF",
+  "target": "vserver.vserver-name",
+  "AAI": {
+    "vserver.is-closed-loop-disabled": "false",
+    "vserver.prov-status": "ACTIVE",
+    "vserver.vserver-name": "OzVServer"
+  },
+  "from": "DCAE",
+  "version": "1.0.2"
+}
diff --git a/csit/drools-applications/tests/data/vfwOnset.json b/csit/drools-applications/tests/data/vfwOnset.json
new file mode 100644 (file)
index 0000000..7782867
--- /dev/null
@@ -0,0 +1,17 @@
+{
+  "closedLoopControlName": "ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a",
+  "closedLoopAlarmStart": 1463679805324,
+  "closedLoopEventClient": "microservice.stringmatcher",
+  "closedLoopEventStatus": "ONSET",
+  "requestID": "c7c6a4aa-bb61-4a15-b831-ba1472dd4a65",
+  "target_type": "VNF",
+  "target": "generic-vnf.vnf-name",
+  "AAI": {
+    "vserver.is-closed-loop-disabled": "false",
+    "vserver.prov-status": "ACTIVE",
+    "generic-vnf.vnf-name": "fw0002vm002fw002",
+    "vserver.vserver-name": "OzVServer"
+  },
+  "from": "DCAE",
+  "version": "1.0.2"
+}
diff --git a/csit/drools-applications/tests/drools-applications-test.robot b/csit/drools-applications/tests/drools-applications-test.robot
new file mode 100644 (file)
index 0000000..627ae1b
--- /dev/null
@@ -0,0 +1,227 @@
+*** Settings ***
+Library     Collections
+Library     String
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     Process
+Library     json
+
+*** Test Cases ***
+Alive
+    [Documentation]    Runs Policy PDP Alive Check
+    ${resp}=  PeformGetRequest  /policy/pdp/engine  ${DROOLS_IP}  9696  200
+    Should Be Equal As Strings    ${resp.json()['alive']}  True
+
+Healthcheck
+    [Documentation]    Runs Policy PDP-D Health check
+    ${resp}=  PeformGetRequest  /healthcheck  ${DROOLS_IP}  6969  200
+    Should Be Equal As Strings    ${resp.json()['healthy']}  True
+
+Controller
+    [Documentation]    Checks controller is up
+    Wait Until Keyword Succeeds  2 min  15 sec  VerifyController
+
+MakeTopics
+    [Documentation]    Creates the Policy topics
+    ${result}=     Run Process        ${SCR2}/make_topic.sh     POLICY-PDP-PAP
+    Should Be Equal As Integers        ${result.rc}    0
+    ${result}=     Run Process        ${SCR2}/make_topic.sh     POLICY-CL-MGT
+    Should Be Equal As Integers        ${result.rc}    0
+
+CreateVcpeXacmlPolicy
+    [Documentation]    Create VCPE Policy for Xacml
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vCPE.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
+
+CreateVcpeDroolsPolicy
+    [Documentation]    Create VCPE Policy for Drools
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vCPE.policy.operational.input.tosca.yaml  ${DATA}  yaml  200
+
+CreateVdnsXacmlPolicy
+    [Documentation]    Create VDNS Policy for Xacml
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vDNS.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
+
+CreateVdnsDroolsPolicy
+    [Documentation]    Create VDNS Policy for Drools
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vDNS.policy.operational.input.tosca.json  ${DATA}  json  200
+
+CreateVfwXacmlPolicy
+    [Documentation]    Create VFW Policy for Xacml
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vFirewall.policy.monitoring.input.tosca.yaml  ${DATA}  yaml  200
+
+CreateVfwDroolsPolicy
+    [Documentation]    Create VFW Policy for Drools
+    PerformPostRequest  /policy/api/v1/policies  null  ${API_IP}  6969  vFirewall.policy.operational.input.tosca.json  ${DATA}  json  200
+
+DeployXacmlPolicies
+    [Documentation]    Deploys the Policies to Xacml
+    PerformPostRequest  /policy/pap/v1/pdps/deployments/batch  null  ${PAP_IP}  6969  deploy.xacml.policies.json  ${DATA2}  json  202
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-PDP-PAP
+    ...            responseTo    xacml    ACTIVE    restart
+    Log    Received status ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    onap.restart.tca
+    Should Contain    ${result.stdout}    onap.scaleout.tca
+    Should Contain    ${result.stdout}    onap.vfirewall.tca
+
+DeployDroolsPolicies
+    [Documentation]    Deploys the Policies to Drools
+    PerformPostRequest  /policy/pap/v1/pdps/deployments/batch  null  ${PAP_IP}  6969  deploy.drools.policies.json  ${DATA2}  json  202
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-PDP-PAP
+    ...            responseTo    drools    ACTIVE
+    Log    Received status ${result.stdout}
+    Sleep    3s
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    operational.restart
+    Should Contain    ${result.stdout}    operational.scaleout
+    Should Contain    ${result.stdout}    operational.modifyconfig
+
+VcpeExecute
+    [Documentation]    Executes VCPE Policy
+    ${result}=     Run Process        ${SCR2}/onset.sh     ${DATA2}/vcpeOnset.json
+    Should Be Equal As Integers        ${result.rc}    0
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    ACTIVE
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    Sending guard query for APPC Restart
+    Should Be Equal As Integers        ${result.rc}    0
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    Guard result for APPC Restart is Permit
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    actor=APPC,operation=Restart
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION: SUCCESS
+    Should Contain    ${result.stdout}    actor=APPC,operation=Restart
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    FINAL: SUCCESS
+    Should Contain    ${result.stdout}    APPC
+    Should Contain    ${result.stdout}    Restart
+
+VdnsExecute
+    [Documentation]    Executes VDNS Policy
+    ${result}=     Run Process        ${SCR2}/onset.sh     ${DATA2}/vdnsOnset.json
+    Should Be Equal As Integers        ${result.rc}    0
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    ACTIVE
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    Sending guard query for SO VF Module Create
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    Guard result for SO VF Module Create is Permit
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    actor=SO,operation=VF Module Create
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION: SUCCESS
+    Should Contain    ${result.stdout}    actor=SO,operation=VF Module Create
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    FINAL: SUCCESS
+    Should Contain    ${result.stdout}    SO
+    Should Contain    ${result.stdout}    VF Module Create
+
+VfwExecute
+    [Documentation]    Executes VFW Policy
+    ${result}=     Run Process        ${SCR2}/onset.sh     ${DATA2}/vfwOnset.json
+    Should Be Equal As Integers        ${result.rc}    0
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    ACTIVE
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    Sending guard query for APPC ModifyConfig
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    Guard result for APPC ModifyConfig is Permit
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION
+    Should Contain    ${result.stdout}    actor=APPC,operation=ModifyConfig
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    OPERATION: SUCCESS
+    Should Contain    ${result.stdout}    actor=APPC,operation=ModifyConfig
+    ${result}=     Run Process        ${SCR2}/wait_topic.sh     POLICY-CL-MGT
+    ...            ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a
+    Log    Received notification ${result.stdout}
+    Should Be Equal As Integers        ${result.rc}    0
+    Should Contain    ${result.stdout}    FINAL: SUCCESS
+    Should Contain    ${result.stdout}    APPC
+    Should Contain    ${result.stdout}    ModifyConfig
+
+*** Keywords ***
+
+VerifyController
+    ${resp}=  PeformGetRequest  /policy/pdp/engine/controllers/usecases/drools/facts  ${DROOLS_IP}  9696  200
+    Should Be Equal As Strings  ${resp.json()['usecases']}  1
+
+PeformGetRequest
+     [Arguments]  ${url}  ${hostname}  ${port}  ${expectedstatus}
+     ${auth}=  Create List  demo@people.osaaf.org  demo123456!
+     Log  Creating session https://${hostname}:${port}
+     ${session}=  Create Session  policy  https://${hostname}:${port}  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+     ${resp}=  GET On Session  policy  ${url}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}
+
+PerformPostRequest
+     [Arguments]  ${url}  ${params}  ${hostname}  ${port}  ${jsonfile}  ${filepath}  ${contenttype}  ${expectedstatus}
+     ${auth}=  Create List  healthcheck  zb!XztG34
+     ${postjson}=  Get file  ${filepath}/${jsonfile}
+     Log  Creating session https://${hostname}:6969
+     ${session}=  Create Session  policy  https://${hostname}:6969  auth=${auth}
+     ${headers}=  Create Dictionary  Accept=application/${contenttype}  Content-Type=application/${contenttype}
+     ${resp}=  POST On Session  policy  ${url}  params=${params}  data=${postjson}  headers=${headers}  expected_status=${expectedstatus}
+     Log  Received response from policy ${resp.text}
+     [return]  ${resp}
diff --git a/csit/drools-pdp/plans/setup.sh b/csit/drools-pdp/plans/setup.sh
new file mode 100755 (executable)
index 0000000..003f21b
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright 2017-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+# OS upgrades
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+sudo apt-get -y install libxml2-utils
+
+source ${SCRIPTS}/detmVers.sh
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d drools
+
+POLICY_DROOLS_IP=`get-instance-ip.sh drools`
+MARIADB_IP=`get-instance-ip.sh mariadb`
+
+echo DROOLS IP IS ${POLICY_DROOLS_IP}
+echo MARIADB IP IS ${MARIADB_IP}
+
+# wait for the app to start up - looking for telemtry service on port 9696
+${SCRIPTS}/wait_for_port.sh ${POLICY_DROOLS_IP} 9696
+
+# give enough time for the controllers to come up
+sleep 15
+
+ROBOT_VARIABLES="-v POLICY_DROOLS_IP:${POLICY_DROOLS_IP}"
diff --git a/csit/drools-pdp/plans/teardown.sh b/csit/drools-pdp/plans/teardown.sh
new file mode 100755 (executable)
index 0000000..d16c164
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+# Copyright 2017-2021 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=========================================================
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/drools-pdp/plans/testplan.txt b/csit/drools-pdp/plans/testplan.txt
new file mode 100644 (file)
index 0000000..76cf0fb
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/drools-pdp.git]/tests/.
+# Place the suites in run order.
+drools-pdp-test.robot
diff --git a/csit/drools-pdp/tests/drools-pdp-test.robot b/csit/drools-pdp/tests/drools-pdp-test.robot
new file mode 100644 (file)
index 0000000..d819a80
--- /dev/null
@@ -0,0 +1,16 @@
+*** Settings ***
+Library  Collections
+Library  RequestsLibrary
+Library  OperatingSystem
+Library  json
+
+*** Test Cases ***
+Alive
+   [Documentation]  Runs Policy PDP Alive Check
+   ${auth}=  Create List  demo@people.osaaf.org  demo123456!
+   Log  Creating session https://${POLICY_DROOLS_IP}:9696
+   ${session}=  Create Session  policy  https://${POLICY_DROOLS_IP}:9696  auth=${auth}
+   ${headers}=  Create Dictionary  Accept=application/json  Content-Type=application/json
+   ${resp}=  GET On Session  policy  /policy/pdp/engine  headers=${headers}  expected_status=200
+   Log  Received response from policy ${resp.text}
+   Should Be Equal As Strings  ${resp.json()['alive']}  True
diff --git a/csit/pap/plans/setup.sh b/csit/pap/plans/setup.sh
new file mode 100644 (file)
index 0000000..d53edc1
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+#  Modifications Copyright (C) 2019-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+source ${SCRIPTS}/get-branch-mariadb.sh
+
+echo "Uninstall docker-py and reinstall docker."
+pip uninstall -y docker-py
+pip uninstall -y docker
+pip install -U docker==2.7.0
+
+sudo apt-get -y install libxml2-utils
+bash ${SCRIPTS}/get-models-examples.sh
+
+source ${SCRIPTS}/detmVers.sh
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml up -d pap
+
+unset http_proxy https_proxy
+
+POLICY_PAP_IP=`get-instance-ip.sh policy-pap`
+POLICY_API_IP=`get-instance-ip.sh policy-api`
+MARIADB_IP=`get-instance-ip.sh mariadb`
+
+echo PAP IP IS ${POLICY_PAP_IP}
+echo API IP IS ${POLICY_API_IP}
+echo MARIADB IP IS ${MARIADB_IP}
+
+
+# wait for the app to start up
+${SCRIPTS}/wait_for_port.sh ${POLICY_PAP_IP} 6969
+
+
+DATA=${WORKSPACE}/models/models-examples/src/main/resources/policies
+
+ROBOT_VARIABLES=""
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_PAP_IP:${POLICY_PAP_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v POLICY_API_IP:${POLICY_API_IP}"
+ROBOT_VARIABLES="${ROBOT_VARIABLES} -v DATA:${DATA}"
diff --git a/csit/pap/plans/teardown.sh b/csit/pap/plans/teardown.sh
new file mode 100644 (file)
index 0000000..0cd4455
--- /dev/null
@@ -0,0 +1,21 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+#  Modifications Copyright (C) 2019-2021 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.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker-compose -f ${SCRIPTS}/docker-compose-all.yml down -v
diff --git a/csit/pap/plans/testplan.txt b/csit/pap/plans/testplan.txt
new file mode 100644 (file)
index 0000000..cdb32d2
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [policy/pap.git]/csit/tests/.
+# Place the suites in run order.
+pap-test.robot
diff --git a/csit/pap/tests/data/create.group.request.json b/csit/pap/tests/data/create.group.request.json
new file mode 100644 (file)
index 0000000..1b63563
--- /dev/null
@@ -0,0 +1,37 @@
+{
+    "groups": [
+        {
+            "name": "create.group.request",
+            "pdpGroupState": "PASSIVE",
+            "properties": {
+                "hello": "world"
+            },
+            "pdpSubgroups": [
+                {
+                    "pdpType": "pdpTypeA",
+                    "desiredInstanceCount": 2,
+                    "properties": {},
+                    "supportedPolicyTypes": [
+                        {
+                            "name": "onap.policies.monitoring.tcagen2",
+                            "version": "1.0.0"
+                        }
+                    ],
+                    "policies": []
+                },
+                {
+                    "pdpType": "pdpTypeB",
+                    "desiredInstanceCount": 1,
+                    "properties": {},
+                    "supportedPolicyTypes": [
+                        {
+                            "name": "onap.policies.monitoring.tcagen2",
+                            "version": "1.0.0"
+                        }
+                    ],
+                    "policies": []
+                }
+            ]
+        }
+    ]
+}
diff --git a/csit/pap/tests/data/deploy.group.request.json b/csit/pap/tests/data/deploy.group.request.json
new file mode 100644 (file)
index 0000000..7f3694d
--- /dev/null
@@ -0,0 +1,19 @@
+{
+    "groups": [
+        {
+            "name": "create.group.request",
+            "deploymentSubgroups": [
+                {
+                    "pdpType": "pdpTypeA",
+                    "action": "POST",
+                    "policies": [
+                        {
+                            "name": "onap.restart.tca",
+                            "version": "1.0.0"
+                        }
+                    ]
+                }
+            ]
+        }
+    ]
+}
diff --git a/csit/pap/tests/pap-test.robot b/csit/pap/tests/pap-test.robot
new file mode 100644 (file)
index 0000000..8d55561
--- /dev/null
@@ -0,0 +1,137 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Test Cases ***
+LoadPolicy
+     [Documentation]    Loads prerequisite Policy via API
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_API_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_API_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${postjson}=  Get file  ${DATA}/vCPE.policy.monitoring.input.tosca.json
+     ${resp}=   POST On Session     policy  /policy/api/v1/policytypes/onap.policies.monitoring.tcagen2/versions/1.0.0/policies    data=${postjson}     headers=${headers}
+     Log    Received response from API ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+
+Healthcheck
+     [Documentation]    Runs Policy PAP Health check
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/pap/v1/healthcheck     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['code']}  200
+
+Statistics
+     [Documentation]    Runs Policy PAP Statistics
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/pap/v1/statistics     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['code']}  200
+
+CreatePdpGroups
+     [Documentation]    Runs Policy PAP Create PDP Groups
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${postjson}=  Get file  ${CURDIR}/data/create.group.request.json
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   POST On Session     policy  /policy/pap/v1/pdps/groups/batch    data=${postjson}     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+
+ActivatePdpGroup
+     [Documentation]    Runs Policy PAP Change PDP Group State to ACTIVE
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=    PUT On Session    policy    /policy/pap/v1/pdps/groups/create.group.request    params=state=ACTIVE    headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+
+QueryPdpGroups
+     [Documentation]    Runs Policy PAP Query PDP Groups
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/pap/v1/pdps     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['groups'][0]['name']}  create.group.request
+     Should Be Equal As Strings    ${resp.json()['groups'][0]['pdpGroupState']}  ACTIVE
+     Should Be Equal As Strings    ${resp.json()['groups'][1]['name']}  defaultGroup
+
+DeployPdpGroups
+     [Documentation]    Runs Policy PAP Deploy Policies to PDP Groups
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${postjson}=  Get file  ${CURDIR}/data/deploy.group.request.json
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   POST On Session     policy  /policy/pap/v1/pdps/deployments/batch    data=${postjson}     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     202
+
+UndeployPolicy
+     [Documentation]    Runs Policy PAP Undeploy a Policy from PDP Groups
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   DELETE On Session     policy  /policy/pap/v1/pdps/policies/onap.restart.tca     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     202
+
+QueryPdpGroupsAfterUndeploy
+     [Documentation]    Runs Policy PAP Query PDP Groups after Undeploy
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/pap/v1/pdps     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['groups'][0]['name']}  create.group.request
+     Should Be Equal As Strings    ${resp.json()['groups'][0]['pdpSubgroups'][0]['policies']}  []
+
+DeactivatePdpGroup
+     [Documentation]    Runs Policy PAP Change PDP Group State to PASSIVE
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=    PUT On Session    policy    /policy/pap/v1/pdps/groups/create.group.request    params=state=PASSIVE    headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+
+DeletePdpGroups
+     [Documentation]    Runs Policy PAP Delete PDP Groups
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   DELETE On Session     policy  /policy/pap/v1/pdps/groups/create.group.request     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+
+QueryPdpGroupsAfterDelete
+     [Documentation]    Runs Policy PAP Query PDP Groups after Delete
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   GET On Session     policy  /policy/pap/v1/pdps     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['groups'][0]['name']}  defaultGroup
index e9c7585..6f7a847 100755 (executable)
@@ -148,29 +148,7 @@ export PROJECT="${1}"
 
 cd ${WORKSPACE}
 
-case "${PROJECT}" in
-xacml-pdp)
-    export TESTPLANDIR="${WORKSPACE}/csit/${PROJECT}"
-    ;;
-*)
-    export TESTPLANDIR="${WORKSPACE}/${PROJECT}/csit"
-
-    rm -rf ${WORKSPACE}/${PROJECT}
-    mkdir ${WORKSPACE}/${PROJECT}
-
-    # get the plan from git clone
-    if ! `git clone -b ${GERRIT_BRANCH} --single-branch https://github.com/onap/policy-${PROJECT}.git ${PROJECT}` ; then
-        echo "repo not found: policy/${PROJECT}"
-        exit 1
-    fi
-
-    if [ ! -f "${TESTPLANDIR}/plans/testplan.txt" ]; then
-    echo "testplan not found: ${TESTPLANDIR}/plans/testplan.txt"
-        exit 2
-    fi
-    ;;
-esac
-
+export TESTPLANDIR="${WORKSPACE}/csit/${PROJECT}"
 export TESTOPTIONS="${2}"
 
 rm -rf "${WORKSPACE}/csit/archives/${PROJECT}"