Add JUnit for engine service 79/68979/2
authorliamfallon <liam.fallon@ericsson.com>
Tue, 25 Sep 2018 21:53:45 +0000 (22:53 +0100)
committerliamfallon <liam.fallon@ericsson.com>
Tue, 25 Sep 2018 23:23:48 +0000 (00:23 +0100)
Although the Apex engine service is called by the policy engine
tests and the various interface tests, the test coverage on these
classes is not showing up in Sonar. In any event it is better
that specific JUint is done for them.

Issue-ID: POLICY-1034
Change-Id: I0028c7e5e870c18649870536cf3691fce2ab689c
Signed-off-by: liamfallon <liam.fallon@ericsson.com>
14 files changed:
core/core-engine/src/main/java/org/onap/policy/apex/core/engine/engine/impl/ApexEngineImpl.java
examples/examples-onap-vcpe/src/main/resources/examples/config/ONAPvCPE/ApexConfig.json
examples/examples-onap-vcpe/src/test/resources/config/ApexConfigFileOnly.json
services/services-engine/src/main/java/org/onap/policy/apex/service/engine/runtime/impl/EngineServiceImpl.java
services/services-engine/src/main/java/org/onap/policy/apex/service/engine/runtime/impl/EngineWorker.java
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyApexEventListener.java [new file with mode: 0644]
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummySfe.java [new file with mode: 0644]
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyTe.java [new file with mode: 0644]
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyTse.java [new file with mode: 0644]
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineServiceImplTest.java [new file with mode: 0644]
services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineWorkerTest.java [new file with mode: 0644]
services/services-engine/src/test/resources/policymodels/MyFirstPolicyModel.json [new file with mode: 0644]
services/services-engine/src/test/resources/policymodels/SamplePolicyModelJAVASCRIPT.json [new file with mode: 0644]
services/services-engine/src/test/resources/policymodels/SamplePolicyModelMVEL.json

index 0226178..efd6aec 100644 (file)
@@ -408,6 +408,10 @@ public class ApexEngineImpl implements ApexEngine {
     public Map<AxArtifactKey, Map<String, Object>> getEngineContext() {
         final Map<AxArtifactKey, Map<String, Object>> currentContext = new LinkedHashMap<>();
 
+        if (internalContext == null) {
+            return currentContext;
+        }
+        
         for (final Entry<AxArtifactKey, ContextAlbum> contextAlbumEntry : internalContext.getContextAlbums()
                         .entrySet()) {
             currentContext.put(contextAlbumEntry.getKey(), contextAlbumEntry.getValue());
index aba5946..4ea4c56 100644 (file)
@@ -5,7 +5,7 @@
         "id": 45,
         "instanceCount": 4,
         "deploymentPort": 12561,
-        "policyModelFileName": "policy/ONAPTLGoalPolicyModel.json",
+        "policyModelFileName": "policy/ONAPvCPEPolicyModel.json",
         "engineParameters": {
             "executorParameters": {
                 "JAVASCRIPT": {
index f2ffdf0..ae365c3 100644 (file)
@@ -5,7 +5,7 @@
         "id": 45,
         "instanceCount": 4,
         "deploymentPort": 12561,
-        "policyModelFileName": "policy/ONAPTLGoalPolicyModel.json",
+        "policyModelFileName": "policy/ONAPvCPEPolicyModel.json",
         "engineParameters": {
             "executorParameters": {
                 "JAVASCRIPT": {
index c999875..ee1a5dc 100644 (file)
@@ -66,6 +66,7 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     // Recurring string constants
     private static final String ENGINE_KEY_PREAMBLE = "engine with key ";
     private static final String NOT_FOUND_SUFFIX = " not found in engine service";
+    private static final String ENGINE_KEY_NOT_SPECIFIED = "engine key must be specified and may not be null";
 
     // Constants for timing
     private static final long MAX_START_WAIT_TIME = 5000; // 5 seconds
@@ -95,23 +96,17 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
      * constructor is private to prevent subclassing.
      *
      * @param engineServiceKey the engine service key
-     * @param incomingThreadCount the thread count, the number of engine workers to start
+     * @param threadCount the thread count, the number of engine workers to start
      * @param periodicEventPeriod the period in milliseconds at which periodic events are generated
      * @throws ApexException on worker instantiation errors
      */
-    private EngineServiceImpl(final AxArtifactKey engineServiceKey, final int incomingThreadCount,
+    private EngineServiceImpl(final AxArtifactKey engineServiceKey, final int threadCount,
                     final long periodicEventPeriod) {
-        LOGGER.entry(engineServiceKey, incomingThreadCount);
+        LOGGER.entry(engineServiceKey, threadCount);
 
         this.engineServiceKey = engineServiceKey;
         this.periodicEventPeriod = periodicEventPeriod;
 
-        int threadCount = incomingThreadCount;
-        if (threadCount <= 0) {
-            // Just start one engine worker
-            threadCount = 1;
-        }
-
         // Start engine workers
         for (int engineCounter = 0; engineCounter < threadCount; engineCounter++) {
             final AxArtifactKey engineWorkerKey = new AxArtifactKey(engineServiceKey.getName() + '-' + engineCounter,
@@ -137,22 +132,18 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     public static EngineServiceImpl create(final EngineServiceParameters config) throws ApexException {
         if (config == null) {
             LOGGER.warn("Engine service configuration parameters is null");
-            throw new ApexException("engine service configuration parameters is null");
+            throw new ApexException("engine service configuration parameters are null");
         }
+        
         final GroupValidationResult validation = config.validate();
         if (!validation.isValid()) {
             LOGGER.warn("Invalid engine service configuration parameters: {}" + validation.getResult());
             throw new ApexException("Invalid engine service configuration parameters: " + validation);
         }
+        
         final AxArtifactKey engineServiceKey = config.getEngineKey();
         final int threadCount = config.getInstanceCount();
 
-        // Check if the Apex model specified is sane
-        if (engineServiceKey == null) {
-            LOGGER.warn("engine service key is null");
-            throw new ApexException("engine service key is null");
-        }
-
         return new EngineServiceImpl(engineServiceKey, threadCount, config.getPeriodicEventPeriod());
     }
 
@@ -166,6 +157,18 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     public void registerActionListener(final String listenerName, final ApexEventListener apexEventListener) {
         LOGGER.entry(apexEventListener);
 
+        if (listenerName == null) {
+            String message = "listener name must be specified and may not be null";
+            LOGGER.warn(message);
+            return;
+        }
+
+        if (apexEventListener == null) {
+            String message = "apex event listener must be specified and may not be null";
+            LOGGER.warn(message);
+            return;
+        }
+
         // Register the Apex event listener on all engine workers, each worker will return Apex
         // events to the listening application
         for (final EngineService engineWorker : engineWorkerMap.values()) {
@@ -248,6 +251,13 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     @Override
     public void updateModel(final AxArtifactKey incomingEngineServiceKey, final String apexModelString,
                     final boolean forceFlag) throws ApexException {
+        // Check if the engine service key specified is sane
+        if (incomingEngineServiceKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if the Apex model specified is sane
         if (apexModelString == null || apexModelString.trim().length() == 0) {
             String emptyModelMessage = "model for updating engine service with key "
@@ -267,12 +277,6 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
             throw new ApexException(message, e);
         }
 
-        if (apexPolicyModel == null) {
-            String message = "apex model null on engine service " + incomingEngineServiceKey.getId();
-            LOGGER.error(message);
-            throw new ApexException(message);
-        }
-
         // Update the model
         updateModel(incomingEngineServiceKey, apexPolicyModel, forceFlag);
 
@@ -290,6 +294,13 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
                     final boolean forceFlag) throws ApexException {
         LOGGER.entry(incomingEngineServiceKey);
 
+        // Check if the engine service key specified is sane
+        if (incomingEngineServiceKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if the Apex model specified is sane
         if (apexModel == null) {
             LOGGER.warn("model for updating on engine service with key " + incomingEngineServiceKey.getId()
@@ -315,6 +326,22 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
             }
         }
 
+        executeModelUpdate(incomingEngineServiceKey, apexModel, forceFlag);
+
+        LOGGER.exit();
+    }
+
+    /**
+     * Execute the model update on the engine instances.
+     * 
+     * @param incomingEngineServiceKey the engine service key to update
+     * @param apexModel the model to update the engines with
+     * @param forceFlag if true, ignore compatibility problems
+     * @throws ApexException on model update errors
+     */
+    private void executeModelUpdate(final AxArtifactKey incomingEngineServiceKey, final AxPolicyModel apexModel,
+                    final boolean forceFlag) throws ApexException {
+        
         if (!isStopped()) {
             stopEngines(incomingEngineServiceKey);
         }
@@ -349,8 +376,6 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
             LOGGER.warn(errorString);
             throw new ApexException(errorString);
         }
-
-        LOGGER.exit();
     }
 
     /**
@@ -432,11 +457,6 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
         for (final EngineService engine : engineWorkerMap.values()) {
             start(engine.getKey());
         }
-
-        // Check if periodic events should be turned on
-        if (periodicEventPeriod > 0) {
-            startPeriodicEvents(periodicEventPeriod);
-        }
     }
 
     /*
@@ -449,6 +469,12 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     public void start(final AxArtifactKey engineKey) throws ApexException {
         LOGGER.entry(engineKey);
 
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             String message = ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX;
@@ -458,6 +484,11 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
 
         // Start the engine
         engineWorkerMap.get(engineKey).start(engineKey);
+        
+        // Check if periodic events should be turned on
+        if (periodicEventPeriod > 0) {
+            startPeriodicEvents(periodicEventPeriod);
+        }
 
         LOGGER.exit(engineKey);
     }
@@ -471,6 +502,11 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     public void stop() throws ApexException {
         LOGGER.entry();
 
+        if (periodicEventGenerator != null) {
+            periodicEventGenerator.cancel();
+            periodicEventGenerator = null;
+        }
+        
         // Stop each engine
         for (final EngineService engine : engineWorkerMap.values()) {
             if (engine.getState() != AxEngineState.STOPPED) {
@@ -491,6 +527,12 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     public void stop(final AxArtifactKey engineKey) throws ApexException {
         LOGGER.entry(engineKey);
 
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             LOGGER.warn(ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX);
@@ -532,6 +574,12 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
     public void clear(final AxArtifactKey engineKey) throws ApexException {
         LOGGER.entry(engineKey);
 
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             LOGGER.warn(ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX);
@@ -570,9 +618,16 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
      */
     @Override
     public boolean isStarted(final AxArtifactKey engineKey) {
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            return false;
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             LOGGER.warn(ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX);
+            return false;
         }
         return engineWorkerMap.get(engineKey).isStarted();
     }
@@ -601,9 +656,16 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
      */
     @Override
     public boolean isStopped(final AxArtifactKey engineKey) {
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            return true;
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             LOGGER.warn(ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX);
+            return true;
         }
         return engineWorkerMap.get(engineKey).isStopped();
     }
@@ -647,6 +709,7 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
         // Stop periodic events
         periodicEventGenerator.cancel();
         periodicEventGenerator = null;
+        periodicEventPeriod = 0;
     }
 
     /*
@@ -657,6 +720,12 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
      */
     @Override
     public String getStatus(final AxArtifactKey engineKey) throws ApexException {
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             LOGGER.warn(ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX);
@@ -675,6 +744,12 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
      */
     @Override
     public String getRuntimeInfo(final AxArtifactKey engineKey) throws ApexException {
+        if (engineKey == null) {
+            String message = ENGINE_KEY_NOT_SPECIFIED;
+            LOGGER.warn(message);
+            throw new ApexException(message);
+        }
+
         // Check if we have this key on our map
         if (!engineWorkerMap.containsKey(engineKey)) {
             LOGGER.warn(ENGINE_KEY_PREAMBLE + engineKey.getId() + NOT_FOUND_SUFFIX);
@@ -693,6 +768,11 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
      */
     @Override
     public void sendEvent(final ApexEvent event) {
+        if (event == null) {
+            LOGGER.warn("Null events cannot be processed, in engine service " + engineServiceKey.getId());
+            return;
+        }
+
         // Check if we have this key on our map
         if (getState() == AxEngineState.STOPPED) {
             LOGGER.warn("event " + event.getName() + " not processed, no engines on engine service "
@@ -700,11 +780,6 @@ public final class EngineServiceImpl implements EngineService, EngineServiceEven
             return;
         }
 
-        if (event == null) {
-            LOGGER.warn("Null events cannot be processed, in engine service " + engineServiceKey.getId());
-            return;
-        }
-
         if (DEBUG_ENABLED) {
             LOGGER.debug("Forwarding Apex Event {} to the processing engine", event);
         }
index 56b3b84..a7d1799 100644 (file)
@@ -76,7 +76,6 @@ final class EngineWorker implements EngineService {
     private static final XLogger LOGGER = XLoggerFactory.getXLogger(EngineService.class);
 
     // Recurring string constants
-    private static final String IS_NULL_SUFFIX = " is  null";
     private static final String ENGINE_FOR_KEY_PREFIX = "apex engine for engine key ";
     private static final String ENGINE_SUFFIX = " of this engine";
     private static final String BAD_KEY_MATCH_TAG = " does not match the key";
@@ -108,7 +107,7 @@ final class EngineWorker implements EngineService {
      * @param threadFactory the thread factory to use for creating the event processing thread
      * @throws ApexException thrown on errors on worker instantiation
      */
-    EngineWorker(final AxArtifactKey engineWorkerKey, final BlockingQueue<ApexEvent> queue,
+    protected EngineWorker(final AxArtifactKey engineWorkerKey, final BlockingQueue<ApexEvent> queue,
             final ApplicationThreadFactory threadFactory) {
         LOGGER.entry(engineWorkerKey);
 
@@ -136,13 +135,6 @@ final class EngineWorker implements EngineService {
      */
     @Override
     public void registerActionListener(final String listenerName, final ApexEventListener apexEventListener) {
-        // Sanity checks on the Apex model
-        if (engine == null) {
-            LOGGER.warn("listener registration on engine with key " + engineWorkerKey.getId()
-                    + ", failed, listener is null");
-            return;
-        }
-
         engine.addEventListener(listenerName, new EnEventListenerImpl(apexEventListener, apexEnEventConverter));
     }
 
@@ -155,13 +147,6 @@ final class EngineWorker implements EngineService {
      */
     @Override
     public void deregisterActionListener(final String listenerName) {
-        // Sanity checks on the Apex model
-        if (engine == null) {
-            LOGGER.warn("listener deregistration on engine with key " + engineWorkerKey.getId()
-                    + ", failed, listener is null");
-            return;
-        }
-
         engine.removeEventListener(listenerName);
     }
 
@@ -233,11 +218,6 @@ final class EngineWorker implements EngineService {
             throw new ApexException("failed to unmarshal the apex model on engine " + engineKey.getId(), e);
         }
 
-        if (apexPolicyModel == null) {
-            LOGGER.error("apex model null on engine " + engineKey.getId());
-            throw new ApexException("apex model null on engine " + engineKey.getId());
-        }
-
         // Update the Apex model in the Apex engine
         updateModel(engineKey, apexPolicyModel, forceFlag);
 
@@ -265,12 +245,6 @@ final class EngineWorker implements EngineService {
             throw new ApexException(message);
         }
 
-        // Sanity checks on the Apex model
-        if (engine == null) {
-            LOGGER.warn("engine with key " + engineKey.getId() + " not initialized");
-            throw new ApexException("engine with key " + engineKey.getId() + " not initialized");
-        }
-
         // Check model compatibility
         if (ModelService.existsModel(AxPolicyModel.class)) {
             // The current policy model may or may not be defined
@@ -336,12 +310,6 @@ final class EngineWorker implements EngineService {
                     + engineWorkerKey.getId() + ENGINE_SUFFIX);
         }
 
-        if (engine == null) {
-            String message = ENGINE_FOR_KEY_PREFIX + engineWorkerKey.getId() + " is null";
-            LOGGER.error(message);
-            throw new ApexException(message);
-        }
-
         // Starts the event processing thread that handles incoming events
         if (processorThread != null && processorThread.isAlive()) {
             String message = ENGINE_FOR_KEY_PREFIX + engineWorkerKey.getId() + " is already running with state "
@@ -387,12 +355,6 @@ final class EngineWorker implements EngineService {
                     + engineWorkerKey.getId() + ENGINE_SUFFIX);
         }
 
-        if (engine == null) {
-            String message = ENGINE_FOR_KEY_PREFIX + engineWorkerKey.getId() + " is null";
-            LOGGER.error(message);
-            throw new ApexException(message);
-        }
-
         // Interrupt the worker to stop its thread
         if (processorThread == null || !processorThread.isAlive()) {
             processorThread = null;
@@ -439,11 +401,6 @@ final class EngineWorker implements EngineService {
                     + engineWorkerKey.getId() + ENGINE_SUFFIX);
         }
 
-        if (engine == null) {
-            LOGGER.error(ENGINE_FOR_KEY_PREFIX + engineWorkerKey.getId() + IS_NULL_SUFFIX);
-            throw new ApexException(ENGINE_FOR_KEY_PREFIX + engineWorkerKey.getId() + IS_NULL_SUFFIX);
-        }
-
         // Interrupt the worker to stop its thread
         if (processorThread != null && !processorThread.isAlive()) {
             LOGGER.warn(ENGINE_FOR_KEY_PREFIX + engineWorkerKey.getId() + " is not stopped with state "
@@ -562,6 +519,7 @@ final class EngineWorker implements EngineService {
         try {
             final ByteArrayOutputStream baOutputStream = new ByteArrayOutputStream();
             final ApexModelWriter<AxEngineModel> modelWriter = new ApexModelWriter<>(AxEngineModel.class);
+            modelWriter.setJsonOutput(true);
             modelWriter.write(apexEngineModel, baOutputStream);
             return baOutputStream.toString();
         } catch (final Exception e) {
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyApexEventListener.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyApexEventListener.java
new file mode 100644 (file)
index 0000000..b3db394
--- /dev/null
@@ -0,0 +1,42 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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=========================================================
+ */
+
+package org.onap.policy.apex.service.engine.runtime.impl;
+
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.engine.runtime.ApexEventListener;
+
+/**
+ * Dummy Apex event listener.
+ */
+public class DummyApexEventListener implements ApexEventListener {
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.onap.policy.apex.service.engine.runtime.ApexEventListener#onApexEvent(org.onap.policy.apex.service.engine.
+     * event.ApexEvent)
+     */
+    @Override
+    public void onApexEvent(ApexEvent apexEvent) {
+        // dummy class so not implemented
+    }
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummySfe.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummySfe.java
new file mode 100644 (file)
index 0000000..2eacba1
--- /dev/null
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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=========================================================
+ */
+
+package org.onap.policy.apex.service.engine.runtime.impl;
+
+import org.onap.policy.apex.core.engine.executor.StateFinalizerExecutor;
+
+/**
+ * Dummy task selection executor class.
+ */
+public class DummySfe extends StateFinalizerExecutor {
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyTe.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyTe.java
new file mode 100644 (file)
index 0000000..638f7e7
--- /dev/null
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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=========================================================
+ */
+
+package org.onap.policy.apex.service.engine.runtime.impl;
+
+import org.onap.policy.apex.core.engine.executor.TaskExecutor;
+
+/**
+ * Dummy task executor class.
+ */
+public class DummyTe extends TaskExecutor {
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyTse.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/DummyTse.java
new file mode 100644 (file)
index 0000000..35b4350
--- /dev/null
@@ -0,0 +1,29 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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=========================================================
+ */
+
+package org.onap.policy.apex.service.engine.runtime.impl;
+
+import org.onap.policy.apex.core.engine.executor.TaskSelectExecutor;
+
+/**
+ * Dummy task selection executor class.
+ */
+public class DummyTse extends TaskSelectExecutor {
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineServiceImplTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineServiceImplTest.java
new file mode 100644 (file)
index 0000000..582e619
--- /dev/null
@@ -0,0 +1,536 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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=========================================================
+ */
+
+package org.onap.policy.apex.service.engine.runtime.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.apex.context.parameters.ContextParameterConstants;
+import org.onap.policy.apex.context.parameters.ContextParameters;
+import org.onap.policy.apex.context.parameters.DistributorParameters;
+import org.onap.policy.apex.context.parameters.LockManagerParameters;
+import org.onap.policy.apex.context.parameters.PersistorParameters;
+import org.onap.policy.apex.context.parameters.SchemaParameters;
+import org.onap.policy.apex.core.engine.EngineParameterConstants;
+import org.onap.policy.apex.core.engine.EngineParameters;
+import org.onap.policy.apex.core.engine.ExecutorParameters;
+import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.handling.ApexModelException;
+import org.onap.policy.apex.model.basicmodel.handling.ApexModelReader;
+import org.onap.policy.apex.model.basicmodel.service.ModelService;
+import org.onap.policy.apex.model.enginemodel.concepts.AxEngineState;
+import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
+import org.onap.policy.apex.model.utilities.TextFileUtils;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.apex.service.parameters.engineservice.EngineServiceParameters;
+import org.onap.policy.common.parameters.ParameterService;
+
+/**
+ * Test the engine service implementation.
+ */
+public class EngineServiceImplTest {
+
+    private static String simpleModelString;
+    private static String mfpModelString;
+    private static AxPolicyModel simpleModel;
+
+    /**
+     * Read the models into strings.
+     * 
+     * @throws IOException on model reading errors
+     * @throws ApexModelException on model reading exceptions
+     */
+    @BeforeClass
+    public static void readSimpleModel() throws IOException, ApexModelException {
+        simpleModelString = TextFileUtils
+                        .getTextFileAsString("src/test/resources/policymodels/SamplePolicyModelJAVASCRIPT.json");
+
+        mfpModelString = TextFileUtils.getTextFileAsString("src/test/resources/policymodels/MyFirstPolicyModel.json");
+
+        final ApexModelReader<AxPolicyModel> modelReader = new ApexModelReader<>(AxPolicyModel.class);
+        simpleModel = modelReader.read(new ByteArrayInputStream(simpleModelString.getBytes()));
+    }
+
+    /**
+     * Initialize default parameters.
+     */
+    @BeforeClass
+    public static void initializeDefaultParameters() {
+        ParameterService.clear();
+        final SchemaParameters schemaParameters = new SchemaParameters();
+        schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME);
+        ParameterService.register(schemaParameters);
+
+        final ContextParameters contextParameters = new ContextParameters();
+        contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME);
+        ParameterService.register(contextParameters);
+
+        final DistributorParameters distributorParameters = new DistributorParameters();
+        distributorParameters.setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME);
+        ParameterService.register(distributorParameters);
+
+        final LockManagerParameters lockManagerParameters = new LockManagerParameters();
+        lockManagerParameters.setName(ContextParameterConstants.LOCKING_GROUP_NAME);
+        ParameterService.register(lockManagerParameters);
+
+        final PersistorParameters persistorParameters = new PersistorParameters();
+        persistorParameters.setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME);
+        ParameterService.register(persistorParameters);
+
+        final EngineParameters engineParameters = new EngineParameters();
+        engineParameters.setName(EngineParameterConstants.MAIN_GROUP_NAME);
+        ExecutorParameters jsExecutorParameters = new ExecutorParameters();
+        jsExecutorParameters.setName("JAVASCRIPT");
+        jsExecutorParameters.setTaskSelectionExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummyTse");
+        jsExecutorParameters.setTaskExecutorPluginClass("org.onap.policy.apex.service.engine.runtime.impl.DummyTe");
+        jsExecutorParameters.setStateFinalizerExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummySfe");
+        engineParameters.getExecutorParameterMap().put("JAVASCRIPT", jsExecutorParameters);
+        ExecutorParameters mvvelExecutorParameters = new ExecutorParameters();
+        mvvelExecutorParameters.setName("MVEL");
+        mvvelExecutorParameters.setTaskSelectionExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummyTse");
+        mvvelExecutorParameters.setTaskExecutorPluginClass("org.onap.policy.apex.service.engine.runtime.impl.DummyTe");
+        mvvelExecutorParameters.setStateFinalizerExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummySfe");
+        engineParameters.getExecutorParameterMap().put("MVEL", jsExecutorParameters);
+        ParameterService.register(engineParameters);
+    }
+
+    /**
+     * Teardown default parameters.
+     */
+    @AfterClass
+    public static void teardownDefaultParameters() {
+        ParameterService.deregister(ContextParameterConstants.SCHEMA_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.LOCKING_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.PERSISTENCE_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.MAIN_GROUP_NAME);
+        ParameterService.deregister(EngineParameterConstants.MAIN_GROUP_NAME);
+        ModelService.clear();
+    }
+
+    @Test
+    public void testEngineServiceImplSanity() throws ApexException {
+        try {
+            EngineServiceImpl.create(null);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine service configuration parameters are null", apEx.getMessage());
+        }
+
+        EngineServiceParameters config = new EngineServiceParameters();
+        config.setInstanceCount(0);
+
+        try {
+            EngineServiceImpl.create(config);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("Invalid engine service configuration parameters:", apEx.getMessage().substring(0, 48));
+        }
+
+        config.setId(123);
+        config.setEngineKey(new AxArtifactKey("Engine", "0.0.1"));
+        config.setInstanceCount(1);
+
+        EngineServiceImpl esImpl = EngineServiceImpl.create(config);
+        assertEquals("Engine:0.0.1", esImpl.getKey().getId());
+
+        esImpl.registerActionListener(null, null);
+        esImpl.registerActionListener("DummyListener", null);
+        esImpl.registerActionListener(null, new DummyApexEventListener());
+
+        esImpl.registerActionListener("DummyListener", new DummyApexEventListener());
+        esImpl.deregisterActionListener(null);
+        esImpl.deregisterActionListener("DummyListener");
+
+        assertEquals(esImpl, esImpl.getEngineServiceEventInterface());
+        assertEquals(1, esImpl.getEngineKeys().size());
+
+        assertNull(esImpl.getApexModelKey());
+
+        try {
+            esImpl.getRuntimeInfo(null);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.getRuntimeInfo(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine with key DummyKey:0.0.1 not found in engine service", apEx.getMessage());
+        }
+
+        String runtimeInfo = esImpl.getRuntimeInfo(esImpl.getEngineKeys().iterator().next());
+        assertEquals("{\n  \"TimeStamp\":", runtimeInfo.substring(0, 16));
+
+        assertEquals(AxEngineState.STOPPED, esImpl.getState());
+
+        try {
+            esImpl.getStatus(null);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.getStatus(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine with key DummyKey:0.0.1 not found in engine service", apEx.getMessage());
+        }
+
+        String status = esImpl.getStatus(esImpl.getEngineKeys().iterator().next());
+        assertEquals("{\n   \"apexEngineModel\" :", status.substring(0, 24));
+
+        assertFalse(esImpl.isStarted());
+        assertFalse(esImpl.isStarted(null));
+        assertFalse(esImpl.isStarted(new AxArtifactKey("DummyKey", "0.0.1")));
+        assertFalse(esImpl.isStarted(esImpl.getEngineKeys().iterator().next()));
+        assertTrue(esImpl.isStopped());
+        assertTrue(esImpl.isStopped(null));
+        assertTrue(esImpl.isStopped(new AxArtifactKey("DummyKey", "0.0.1")));
+        assertTrue(esImpl.isStopped(esImpl.getEngineKeys().iterator().next()));
+
+        try {
+            esImpl.start(null);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.start(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine with key DummyKey:0.0.1 not found in engine service", apEx.getMessage());
+        }
+
+        try {
+            esImpl.start(esImpl.getEngineKeys().iterator().next());
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("start()<-Engine-0:0.0.1,STOPPED,  cannot start engine, "
+                            + "engine has not been initialized, its model is not loaded", apEx.getMessage());
+        }
+
+        try {
+            esImpl.startAll();
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("start()<-Engine-0:0.0.1,STOPPED,  cannot start engine, "
+                            + "engine has not been initialized, its model is not loaded", apEx.getMessage());
+        }
+
+        try {
+            esImpl.stop(null);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.stop(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine with key DummyKey:0.0.1 not found in engine service", apEx.getMessage());
+        }
+
+        try {
+            esImpl.stop(esImpl.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.stop();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.sendEvent(null);
+        } catch (Exception apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.sendEvent(new ApexEvent("SomeEvent", "0.0.1", "the.event.namespace", "EventSource", "EventTarget"));
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        esImpl.startPeriodicEvents(100000);
+
+        try {
+            esImpl.startPeriodicEvents(100000);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("Peiodic event geneation already running on engine Engine:0.0.1, ApexPeriodicEventGenerator "
+                            + "[period=100000, firstEventTime=0, lastEventTime=0, eventCount=0]", apEx.getMessage());
+        }
+
+        esImpl.stopPeriodicEvents();
+        try {
+            esImpl.stopPeriodicEvents();
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("Peiodic event geneation not running on engine Engine:0.0.1", apEx.getMessage());
+        }
+
+        try {
+            esImpl.clear(null);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.clear(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine with key DummyKey:0.0.1 not found in engine service", apEx.getMessage());
+        }
+
+        try {
+            esImpl.clear(esImpl.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.clear();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.updateModel(null, (String) null, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), (String) null, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("model for updating engine service with key DummyKey:0.0.1 is empty", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), "", true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("model for updating engine service with key DummyKey:0.0.1 is empty", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), "I am not an Apex model", true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("failed to unmarshal the apex model on engine service DummyKey:0.0.1", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), simpleModelString, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine service key DummyKey:0.0.1 does not match the keyEngine:0.0.1 of this engine service",
+                            apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(null, simpleModelString, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(null, (AxPolicyModel) null, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key must be specified and may not be null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), (AxPolicyModel) null, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("model for updating on engine service with key DummyKey:0.0.1 is null", apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), simpleModel, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine service key DummyKey:0.0.1 does not match the keyEngine:0.0.1 of this engine service",
+                            apEx.getMessage());
+        }
+    }
+
+    @Test
+    public void testApexImplModelWIthModel() throws ApexException {
+        EngineServiceParameters config = new EngineServiceParameters();
+        config.setId(123);
+        config.setEngineKey(new AxArtifactKey("Engine", "0.0.1"));
+        config.setInstanceCount(1);
+
+        EngineServiceImpl esImpl = EngineServiceImpl.create(config);
+        assertEquals("Engine:0.0.1", esImpl.getKey().getId());
+
+        try {
+            esImpl.updateModel(config.getEngineKey(), simpleModelString, false);
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.updateModel(config.getEngineKey(), mfpModelString, false);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("apex model update failed, supplied model with key \"MyFirstPolicyModel:0.0.1\" is not a "
+                            + "compatible model update "
+                            + "from the existing engine model with key \"SamplePolicyModelJAVASCRIPT:0.0.1\"",
+                            apEx.getMessage());
+        }
+
+        try {
+            esImpl.updateModel(config.getEngineKey(), mfpModelString, true);
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.updateModel(config.getEngineKey(), simpleModelString, true);
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        String runtimeInfo = esImpl.getRuntimeInfo(esImpl.getEngineKeys().iterator().next());
+        assertEquals("{\n  \"TimeStamp\":", runtimeInfo.substring(0, 16));
+
+        assertEquals(AxEngineState.EXECUTING, esImpl.getState());
+
+        String status = esImpl.getStatus(esImpl.getEngineKeys().iterator().next());
+        assertEquals("{\n   \"apexEngineModel\" :", status.substring(0, 24));
+
+        assertTrue(esImpl.isStarted());
+        assertTrue(esImpl.isStarted(esImpl.getEngineKeys().iterator().next()));
+        assertFalse(esImpl.isStopped());
+        assertFalse(esImpl.isStopped(esImpl.getEngineKeys().iterator().next()));
+
+        try {
+            esImpl.start(esImpl.getEngineKeys().iterator().next());
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("apex engine for engine key Engine-0:0.0.1 is already running with state READY",
+                            apEx.getMessage());
+        }
+
+        try {
+            esImpl.startAll();
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("apex engine for engine key Engine-0:0.0.1 is already running with state READY",
+                            apEx.getMessage());
+        }
+
+        try {
+            esImpl.stop(esImpl.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.start(esImpl.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.stop();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.startAll();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.sendEvent(new ApexEvent("SomeEvent", "0.0.1", "the.event.namespace", "EventSource", "EventTarget"));
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        esImpl.startPeriodicEvents(100000);
+        esImpl.stop();
+        esImpl.startAll();
+        esImpl.stopPeriodicEvents();
+
+        esImpl.startPeriodicEvents(100000);
+        try {
+            esImpl.startPeriodicEvents(100000);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("Peiodic event geneation already running on engine Engine:0.0.1, ApexPeriodicEventGenerator "
+                            + "[period=100000, firstEventTime=0, lastEventTime=0, eventCount=0]", apEx.getMessage());
+        }
+
+        esImpl.stopPeriodicEvents();
+        try {
+            esImpl.stopPeriodicEvents();
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("Peiodic event geneation not running on engine Engine:0.0.1", apEx.getMessage());
+        }
+
+        try {
+            esImpl.clear(esImpl.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            esImpl.clear();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+    }
+}
diff --git a/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineWorkerTest.java b/services/services-engine/src/test/java/org/onap/policy/apex/service/engine/runtime/impl/EngineWorkerTest.java
new file mode 100644 (file)
index 0000000..5ffda6e
--- /dev/null
@@ -0,0 +1,431 @@
+/*-
+ * ============LICENSE_START=======================================================
+ *  Copyright (C) 2018 Ericsson. 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=========================================================
+ */
+
+package org.onap.policy.apex.service.engine.runtime.impl;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.onap.policy.apex.context.parameters.ContextParameterConstants;
+import org.onap.policy.apex.context.parameters.ContextParameters;
+import org.onap.policy.apex.context.parameters.DistributorParameters;
+import org.onap.policy.apex.context.parameters.LockManagerParameters;
+import org.onap.policy.apex.context.parameters.PersistorParameters;
+import org.onap.policy.apex.context.parameters.SchemaParameters;
+import org.onap.policy.apex.core.engine.EngineParameterConstants;
+import org.onap.policy.apex.core.engine.EngineParameters;
+import org.onap.policy.apex.core.engine.ExecutorParameters;
+import org.onap.policy.apex.core.infrastructure.threading.ApplicationThreadFactory;
+import org.onap.policy.apex.model.basicmodel.concepts.ApexException;
+import org.onap.policy.apex.model.basicmodel.concepts.AxArtifactKey;
+import org.onap.policy.apex.model.basicmodel.handling.ApexModelException;
+import org.onap.policy.apex.model.basicmodel.handling.ApexModelReader;
+import org.onap.policy.apex.model.basicmodel.service.ModelService;
+import org.onap.policy.apex.model.enginemodel.concepts.AxEngineState;
+import org.onap.policy.apex.model.policymodel.concepts.AxPolicyModel;
+import org.onap.policy.apex.model.utilities.TextFileUtils;
+import org.onap.policy.apex.service.engine.event.ApexEvent;
+import org.onap.policy.common.parameters.ParameterService;
+
+/**
+ * Test the engine worker class.
+ */
+public class EngineWorkerTest {
+    private final ApplicationThreadFactory atFactory = new ApplicationThreadFactory("apex-engine-service", 512);
+
+    private static String simpleModelString;
+    private static String mfpModelString;
+    private static AxPolicyModel simpleModel;
+
+    /**
+     * Read the models into strings.
+     * 
+     * @throws IOException on model reading errors
+     * @throws ApexModelException on model reading exceptions
+     */
+    @BeforeClass
+    public static void readSimpleModel() throws IOException, ApexModelException {
+        simpleModelString = TextFileUtils
+                        .getTextFileAsString("src/test/resources/policymodels/SamplePolicyModelJAVASCRIPT.json");
+
+        mfpModelString = TextFileUtils.getTextFileAsString("src/test/resources/policymodels/MyFirstPolicyModel.json");
+
+        final ApexModelReader<AxPolicyModel> modelReader = new ApexModelReader<>(AxPolicyModel.class);
+        simpleModel = modelReader.read(new ByteArrayInputStream(simpleModelString.getBytes()));
+    }
+
+    /**
+     * Initialize default parameters.
+     */
+    @BeforeClass
+    public static void initializeDefaultParameters() {
+        ParameterService.clear();
+        final SchemaParameters schemaParameters = new SchemaParameters();
+        schemaParameters.setName(ContextParameterConstants.SCHEMA_GROUP_NAME);
+        ParameterService.register(schemaParameters);
+
+        final ContextParameters contextParameters = new ContextParameters();
+        contextParameters.setName(ContextParameterConstants.MAIN_GROUP_NAME);
+        ParameterService.register(contextParameters);
+
+        final DistributorParameters distributorParameters = new DistributorParameters();
+        distributorParameters.setName(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME);
+        ParameterService.register(distributorParameters);
+
+        final LockManagerParameters lockManagerParameters = new LockManagerParameters();
+        lockManagerParameters.setName(ContextParameterConstants.LOCKING_GROUP_NAME);
+        ParameterService.register(lockManagerParameters);
+
+        final PersistorParameters persistorParameters = new PersistorParameters();
+        persistorParameters.setName(ContextParameterConstants.PERSISTENCE_GROUP_NAME);
+        ParameterService.register(persistorParameters);
+
+        final EngineParameters engineParameters = new EngineParameters();
+        engineParameters.setName(EngineParameterConstants.MAIN_GROUP_NAME);
+        ExecutorParameters jsExecutorParameters = new ExecutorParameters();
+        jsExecutorParameters.setName("JAVASCRIPT");
+        jsExecutorParameters.setTaskSelectionExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummyTse");
+        jsExecutorParameters.setTaskExecutorPluginClass("org.onap.policy.apex.service.engine.runtime.impl.DummyTe");
+        jsExecutorParameters.setStateFinalizerExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummySfe");
+        engineParameters.getExecutorParameterMap().put("JAVASCRIPT", jsExecutorParameters);
+        ExecutorParameters mvvelExecutorParameters = new ExecutorParameters();
+        mvvelExecutorParameters.setName("MVEL");
+        mvvelExecutorParameters.setTaskSelectionExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummyTse");
+        mvvelExecutorParameters.setTaskExecutorPluginClass("org.onap.policy.apex.service.engine.runtime.impl.DummyTe");
+        mvvelExecutorParameters.setStateFinalizerExecutorPluginClass(
+                        "org.onap.policy.apex.service.engine.runtime.impl.DummySfe");
+        engineParameters.getExecutorParameterMap().put("MVEL", jsExecutorParameters);
+        ParameterService.register(engineParameters);
+    }
+
+    /**
+     * Teardown default parameters.
+     */
+    @AfterClass
+    public static void teardownDefaultParameters() {
+        ParameterService.deregister(ContextParameterConstants.SCHEMA_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.DISTRIBUTOR_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.LOCKING_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.PERSISTENCE_GROUP_NAME);
+        ParameterService.deregister(ContextParameterConstants.MAIN_GROUP_NAME);
+        ParameterService.deregister(EngineParameterConstants.MAIN_GROUP_NAME);
+    }
+    
+    @After
+    public void cleardownTest() {
+        ModelService.clear();
+    }
+
+    @Test
+    public void testEngineWorker() {
+        BlockingQueue<ApexEvent> eventQueue = new LinkedBlockingQueue<>();
+
+        EngineWorker worker = new EngineWorker(new AxArtifactKey("Worker", "0.0.1"), eventQueue, atFactory);
+
+        worker.registerActionListener(null, null);
+        worker.registerActionListener("DummyListener", null);
+        worker.registerActionListener(null, new DummyApexEventListener());
+
+        worker.registerActionListener("DummyListener", new DummyApexEventListener());
+        worker.deregisterActionListener(null);
+        worker.deregisterActionListener("DummyListener");
+
+        try {
+            worker.getEngineServiceEventInterface();
+            fail("test should throw an exception");
+        } catch (Exception apEx) {
+            assertEquals("getEngineServiceEventInterface() call is not allowed on an Apex Engine Worker",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.startPeriodicEvents(100000);
+            fail("test should throw an exception");
+        } catch (Exception apEx) {
+            assertEquals("startPeriodicEvents() call is not allowed on an Apex Engine Worker", apEx.getMessage());
+        }
+
+        try {
+            worker.stopPeriodicEvents();
+            fail("test should throw an exception");
+        } catch (Exception apEx) {
+            assertEquals("stopPeriodicEvents() call is not allowed on an Apex Engine Worker", apEx.getMessage());
+        }
+
+        assertEquals("Worker:0.0.1", worker.getEngineKeys().iterator().next().getId());
+
+        assertNull(worker.getApexModelKey());
+
+        String runtimeInfo = worker.getRuntimeInfo(worker.getEngineKeys().iterator().next());
+        assertEquals("{\n  \"TimeStamp\":", runtimeInfo.substring(0, 16));
+
+        assertEquals(AxEngineState.STOPPED, worker.getState());
+
+        String status = worker.getStatus(worker.getEngineKeys().iterator().next());
+        assertEquals("{\n   \"apexEngineModel\" :", status.substring(0, 24));
+
+        assertFalse(worker.isStarted());
+        assertFalse(worker.isStarted(null));
+        assertFalse(worker.isStarted(new AxArtifactKey("DummyKey", "0.0.1")));
+        assertFalse(worker.isStarted(worker.getEngineKeys().iterator().next()));
+        assertTrue(worker.isStopped());
+        assertTrue(worker.isStopped(null));
+        assertTrue(worker.isStopped(new AxArtifactKey("DummyKey", "0.0.1")));
+        assertTrue(worker.isStopped(worker.getEngineKeys().iterator().next()));
+
+        try {
+            worker.start(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key DummyKey:0.0.1 does not match the keyWorker:0.0.1 of this engine",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.start(worker.getEngineKeys().iterator().next());
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("start()<-Worker:0.0.1,STOPPED,  cannot start engine, engine has not been initialized, "
+                            + "its model is not loaded", apEx.getMessage());
+        }
+
+        try {
+            worker.startAll();
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("start()<-Worker:0.0.1,STOPPED,  cannot start engine, "
+                            + "engine has not been initialized, its model is not loaded", apEx.getMessage());
+        }
+
+        try {
+            worker.stop(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key DummyKey:0.0.1 does not match the keyWorker:0.0.1 of this engine",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.stop(worker.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.stop();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.clear(new AxArtifactKey("DummyKey", "0.0.1"));
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key DummyKey:0.0.1 does not match the keyWorker:0.0.1 of this engine",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.clear(worker.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.clear();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), "", true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("failed to unmarshal the apex model on engine DummyKey:0.0.1", apEx.getMessage());
+        }
+
+        try {
+            worker.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), "I am not an Apex model", true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("failed to unmarshal the apex model on engine DummyKey:0.0.1", apEx.getMessage());
+        }
+
+        try {
+            worker.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), simpleModelString, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key DummyKey:0.0.1 does not match the keyWorker:0.0.1 of this engine",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), (AxPolicyModel) null, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key DummyKey:0.0.1 does not match the keyWorker:0.0.1 of this engine",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.updateModel(new AxArtifactKey("DummyKey", "0.0.1"), simpleModel, true);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("engine key DummyKey:0.0.1 does not match the keyWorker:0.0.1 of this engine",
+                            apEx.getMessage());
+        }
+    }
+    
+
+    @Test
+    public void testApexImplModelWIthModel() throws ApexException {
+        BlockingQueue<ApexEvent> eventQueue = new LinkedBlockingQueue<>();
+
+        EngineWorker worker = new EngineWorker(new AxArtifactKey("Worker", "0.0.1"), eventQueue, atFactory);
+        assertEquals("Worker:0.0.1", worker.getKey().getId());
+
+        try {
+            worker.updateModel(worker.getKey(), simpleModelString, false);
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+        
+        eventQueue.add(new ApexEvent("SomeEvent", "0.0.1", "the.event.namespace", "EventSource", "EventTarget"));
+
+        try {
+            worker.updateModel(worker.getKey(), mfpModelString, false);
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("apex model update failed, supplied model with key \"MyFirstPolicyModel:0.0.1\" is not a "
+                            + "compatible model update "
+                            + "from the existing engine model with key \"SamplePolicyModelJAVASCRIPT:0.0.1\"",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.updateModel(worker.getKey(), mfpModelString, true);
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.updateModel(worker.getKey(), simpleModelString, true);
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        String runtimeInfo = worker.getRuntimeInfo(worker.getEngineKeys().iterator().next());
+        assertEquals("{\n  \"TimeStamp\":", runtimeInfo.substring(0, 16));
+
+        assertEquals(AxEngineState.STOPPED, worker.getState());
+        worker.startAll();
+        
+        assertEquals(AxEngineState.READY, worker.getState());
+
+        String status = worker.getStatus(worker.getEngineKeys().iterator().next());
+        assertEquals("{\n   \"apexEngineModel\" :", status.substring(0, 24));
+
+        assertTrue(worker.isStarted());
+        assertTrue(worker.isStarted(worker.getEngineKeys().iterator().next()));
+        assertFalse(worker.isStopped());
+        assertFalse(worker.isStopped(worker.getEngineKeys().iterator().next()));
+
+        try {
+            worker.start(worker.getEngineKeys().iterator().next());
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("apex engine for engine key Worker:0.0.1 is already running with state READY",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.startAll();
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("apex engine for engine key Worker:0.0.1 is already running with state READY",
+                            apEx.getMessage());
+        }
+
+        try {
+            worker.stop(worker.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.start(worker.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.stop();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.startAll();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        worker.stop();
+        worker.startAll();
+
+        try {
+            worker.clear(worker.getEngineKeys().iterator().next());
+            fail("test should throw an exception");
+        } catch (ApexException apEx) {
+            assertEquals("clear()<-Worker:0.0.1,READY, cannot clear engine, engine is not stopped", apEx.getMessage());
+        }
+
+        try {
+            worker.stop(worker.getEngineKeys().iterator().next());
+            worker.clear(worker.getEngineKeys().iterator().next());
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+
+        try {
+            worker.clear();
+        } catch (ApexException apEx) {
+            fail("test should not throw an exception");
+        }
+        
+        assertNotNull(worker.getApexModelKey());
+    }
+}
diff --git a/services/services-engine/src/test/resources/policymodels/MyFirstPolicyModel.json b/services/services-engine/src/test/resources/policymodels/MyFirstPolicyModel.json
new file mode 100644 (file)
index 0000000..39ca632
--- /dev/null
@@ -0,0 +1,974 @@
+{
+   "apexPolicyModel" : {
+      "key" : {
+         "name" : "MyFirstPolicyModel",
+         "version" : "0.0.1"
+      },
+      "keyInformation" : {
+         "key" : {
+            "name" : "MyFirstPolicyModel_KeyInfo",
+            "version" : "0.0.1"
+         },
+         "keyInfoMap" : {
+            "entry" : [ {
+               "key" : {
+                  "name" : "MorningBoozeCheck",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MorningBoozeCheck",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "3351b0f4-cf06-4fa2-8823-edf67bd30223",
+                  "description" : "This task checks if the sales request is for an item that contains alcohol. \nIf the local time is between 00:00:00 and 11:30:00 then the sale is not authorised. Otherwise the sale is authorised. \nIn this implementation we assume that all items with item_ID values between 1000 and 2000 contain alcohol :-)"
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicy",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicy",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "6c5e410f-489a-46ff-964e-982ce6e8b6d0",
+                  "description" : "This is my first Apex policy. It checks if a sale should be authorised or not."
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "540226fb-55ee-4f0e-a444-983a0494818e",
+                  "description" : "This is my first Apex Policy Model."
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel_Albums",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel_Albums",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "3f70ec50-f896-31ba-afec-5fd47e69045b",
+                  "description" : "Generated description for concept referred to by key \"MyFirstPolicyModel_Albums:0.0.1\""
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel_Events",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel_Events",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "ef281318-5ac9-3ef0-8db3-8f9c4e4a81e2",
+                  "description" : "Generated description for concept referred to by key \"MyFirstPolicyModel_Events:0.0.1\""
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel_KeyInfo",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel_KeyInfo",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "d9248c6f-7c00-38df-8251-611463ba4065",
+                  "description" : "Generated description for concept referred to by key \"MyFirstPolicyModel_KeyInfo:0.0.1\""
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel_Policies",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel_Policies",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "77c01a6b-510c-3aa9-b640-b4db356aa03b",
+                  "description" : "Generated description for concept referred to by key \"MyFirstPolicyModel_Policies:0.0.1\""
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel_Schemas",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel_Schemas",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "d0cc3aa0-ea69-3a43-80ff-a0dbb0ebd885",
+                  "description" : "Generated description for concept referred to by key \"MyFirstPolicyModel_Schemas:0.0.1\""
+               }
+            }, {
+               "key" : {
+                  "name" : "MyFirstPolicyModel_Tasks",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MyFirstPolicyModel_Tasks",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "b02a7e02-2cd0-39e6-b3cb-946fa83a8f08",
+                  "description" : "Generated description for concept referred to by key \"MyFirstPolicyModel_Tasks:0.0.1\""
+               }
+            }, {
+               "key" : {
+                  "name" : "SALE_AUTH",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "SALE_AUTH",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "c4500941-3f98-4080-a9cc-5b9753ed050b",
+                  "description" : "An event emitted by the Policy to indicate whether the sale of an item has been authorised"
+               }
+            }, {
+               "key" : {
+                  "name" : "SALE_INPUT",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "SALE_INPUT",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "4f04aa98-e917-4f4a-882a-c75ba5a99374",
+                  "description" : "An event raised by the PoS system each time an item is scanned for purchase"
+               }
+            }, {
+               "key" : {
+                  "name" : "assistant_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "assistant_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "36df4c71-9616-4206-8b53-976a5cd4bd87",
+                  "description" : "A type for 'assistant_ID' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "authorised_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "authorised_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "d48b619e-d00d-4008-b884-02d76ea4350b",
+                  "description" : "A type for 'authorised' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "branch_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "branch_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "6468845f-4122-4128-8e49-0f52c26078b5",
+                  "description" : "A type for 'branch_ID' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "item_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "item_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "4f227ff1-aee0-453a-b6b6-9a4b2e0da932",
+                  "description" : "A type for 'item_ID' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "message_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "message_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "ad1431bb-3155-4e73-b5a3-b89bee498749",
+                  "description" : "A type for 'message' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "notes_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "notes_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "eecfde90-896c-4343-8f9c-2603ced94e2d",
+                  "description" : "A type for 'notes' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "price_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "price_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "52c2fc45-fd8c-463c-bd6f-d91b0554aea7",
+                  "description" : "A type for 'amount'/'price' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "quantity_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "quantity_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "ac3d9842-80af-4a98-951c-bd79a431c613",
+                  "description" : "A type for 'quantity' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "sale_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "sale_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "cca47d74-7754-4a61-b163-ca31f66b157b",
+                  "description" : "A type for 'sale_ID' values"
+               }
+            }, {
+               "key" : {
+                  "name" : "timestamp_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "timestamp_type",
+                     "version" : "0.0.1"
+                  },
+                  "UUID" : "fd594e88-411d-4a94-b2be-697b3a0d7adf",
+                  "description" : "A type for 'time' values"
+               }
+            } ]
+         }
+      },
+      "policies" : {
+         "key" : {
+            "name" : "MyFirstPolicyModel_Policies",
+            "version" : "0.0.1"
+         },
+         "policyMap" : {
+            "entry" : [ {
+               "key" : {
+                  "name" : "MyFirstPolicy",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "policyKey" : {
+                     "name" : "MyFirstPolicy",
+                     "version" : "0.0.1"
+                  },
+                  "template" : "FREEFORM",
+                  "state" : {
+                     "entry" : [ {
+                        "key" : "BoozeAuthDecide",
+                        "value" : {
+                           "stateKey" : {
+                              "parentKeyName" : "MyFirstPolicy",
+                              "parentKeyVersion" : "0.0.1",
+                              "parentLocalName" : "NULL",
+                              "localName" : "BoozeAuthDecide"
+                           },
+                           "trigger" : {
+                              "name" : "SALE_INPUT",
+                              "version" : "0.0.1"
+                           },
+                           "stateOutputs" : {
+                              "entry" : [ {
+                                 "key" : "MorningBoozeCheck_Output_Direct",
+                                 "value" : {
+                                    "key" : {
+                                       "parentKeyName" : "MyFirstPolicy",
+                                       "parentKeyVersion" : "0.0.1",
+                                       "parentLocalName" : "BoozeAuthDecide",
+                                       "localName" : "MorningBoozeCheck_Output_Direct"
+                                    },
+                                    "outgoingEvent" : {
+                                       "name" : "SALE_AUTH",
+                                       "version" : "0.0.1"
+                                    },
+                                    "nextState" : {
+                                       "parentKeyName" : "NULL",
+                                       "parentKeyVersion" : "0.0.0",
+                                       "parentLocalName" : "NULL",
+                                       "localName" : "NULL"
+                                    }
+                                 }
+                              } ]
+                           },
+                           "contextAlbumReference" : [ ],
+                           "taskSelectionLogic" : {
+                              "key" : "NULL",
+                              "logicFlavour" : "UNDEFINED",
+                              "logic" : ""
+                           },
+                           "stateFinalizerLogicMap" : {
+                              "entry" : [ ]
+                           },
+                           "defaultTask" : {
+                              "name" : "MorningBoozeCheck",
+                              "version" : "0.0.1"
+                           },
+                           "taskReferences" : {
+                              "entry" : [ {
+                                 "key" : {
+                                    "name" : "MorningBoozeCheck",
+                                    "version" : "0.0.1"
+                                 },
+                                 "value" : {
+                                    "key" : {
+                                       "parentKeyName" : "MyFirstPolicy",
+                                       "parentKeyVersion" : "0.0.1",
+                                       "parentLocalName" : "BoozeAuthDecide",
+                                       "localName" : "MorningBoozeCheck"
+                                    },
+                                    "outputType" : "DIRECT",
+                                    "output" : {
+                                       "parentKeyName" : "MyFirstPolicy",
+                                       "parentKeyVersion" : "0.0.1",
+                                       "parentLocalName" : "BoozeAuthDecide",
+                                       "localName" : "MorningBoozeCheck_Output_Direct"
+                                    }
+                                 }
+                              } ]
+                           }
+                        }
+                     } ]
+                  },
+                  "firstState" : "BoozeAuthDecide"
+               }
+            } ]
+         }
+      },
+      "tasks" : {
+         "key" : {
+            "name" : "MyFirstPolicyModel_Tasks",
+            "version" : "0.0.1"
+         },
+         "taskMap" : {
+            "entry" : [ {
+               "key" : {
+                  "name" : "MorningBoozeCheck",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "MorningBoozeCheck",
+                     "version" : "0.0.1"
+                  },
+                  "inputFields" : {
+                     "entry" : [ {
+                        "key" : "sale_ID",
+                        "value" : {
+                           "key" : "sale_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "sale_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "amount",
+                        "value" : {
+                           "key" : "amount",
+                           "fieldSchemaKey" : {
+                              "name" : "price_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "assistant_ID",
+                        "value" : {
+                           "key" : "assistant_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "assistant_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "notes",
+                        "value" : {
+                           "key" : "notes",
+                           "fieldSchemaKey" : {
+                              "name" : "notes_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : true
+                        }
+                     }, {
+                        "key" : "quantity",
+                        "value" : {
+                           "key" : "quantity",
+                           "fieldSchemaKey" : {
+                              "name" : "quantity_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "branch_ID",
+                        "value" : {
+                           "key" : "branch_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "branch_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "item_ID",
+                        "value" : {
+                           "key" : "item_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "item_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "time",
+                        "value" : {
+                           "key" : "time",
+                           "fieldSchemaKey" : {
+                              "name" : "timestamp_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     } ]
+                  },
+                  "outputFields" : {
+                     "entry" : [ {
+                        "key" : "sale_ID",
+                        "value" : {
+                           "key" : "sale_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "sale_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "amount",
+                        "value" : {
+                           "key" : "amount",
+                           "fieldSchemaKey" : {
+                              "name" : "price_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "assistant_ID",
+                        "value" : {
+                           "key" : "assistant_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "assistant_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "notes",
+                        "value" : {
+                           "key" : "notes",
+                           "fieldSchemaKey" : {
+                              "name" : "notes_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : true
+                        }
+                     }, {
+                        "key" : "quantity",
+                        "value" : {
+                           "key" : "quantity",
+                           "fieldSchemaKey" : {
+                              "name" : "quantity_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "branch_ID",
+                        "value" : {
+                           "key" : "branch_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "branch_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "item_ID",
+                        "value" : {
+                           "key" : "item_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "item_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "authorised",
+                        "value" : {
+                           "key" : "authorised",
+                           "fieldSchemaKey" : {
+                              "name" : "authorised_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "time",
+                        "value" : {
+                           "key" : "time",
+                           "fieldSchemaKey" : {
+                              "name" : "timestamp_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "message",
+                        "value" : {
+                           "key" : "message",
+                           "fieldSchemaKey" : {
+                              "name" : "message_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : true
+                        }
+                     } ]
+                  },
+                  "taskParameters" : {
+                     "entry" : [ ]
+                  },
+                  "contextAlbumReference" : [ ],
+                  "taskLogic" : {
+                     "key" : "TaskLogic",
+                     "logicFlavour" : "MVEL",
+                     "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 */\nimport java.util.Date;\nimport java.util.Calendar;\nimport java.util.TimeZone;\nimport java.text.SimpleDateFormat;\n\nlogger.info(\"Task Execution: '\"+subject.id+\"'. Input Fields: '\"+inFields+\"'\");\n\noutFields.put(\"amount\"      , inFields.get(\"amount\"));\noutFields.put(\"assistant_ID\", inFields.get(\"assistant_ID\"));\noutFields.put(\"notes\"       , inFields.get(\"notes\"));\noutFields.put(\"quantity\"    , inFields.get(\"quantity\"));\noutFields.put(\"branch_ID\"   , inFields.get(\"branch_ID\"));\noutFields.put(\"item_ID\"     , inFields.get(\"item_ID\"));\noutFields.put(\"time\"        , inFields.get(\"time\"));\noutFields.put(\"sale_ID\"     , inFields.get(\"sale_ID\"));\n\nitem_id = inFields.get(\"item_ID\");\n\n//The events used later to test this task use GMT timezone!\ngmt = TimeZone.getTimeZone(\"GMT\");\ntimenow = Calendar.getInstance(gmt);\ndf = new SimpleDateFormat(\"HH:mm:ss z\");\ndf.setTimeZone(gmt);\ntimenow.setTimeInMillis(inFields.get(\"time\"));\n\nmidnight = timenow.clone();\nmidnight.set(\n    timenow.get(Calendar.YEAR),timenow.get(Calendar.MONTH),\n    timenow.get(Calendar.DATE),0,0,0);\neleven30 = timenow.clone();\neleven30.set(\n    timenow.get(Calendar.YEAR),timenow.get(Calendar.MONTH),\n    timenow.get(Calendar.DATE),11,30,0);\n\nitemisalcohol = false;\nif(item_id != null && item_id >=1000 && item_id < 2000)\n    itemisalcohol = true;\n\nif( itemisalcohol\n    && timenow.after(midnight) && timenow.before(eleven30)){\n  outFields.put(\"authorised\", false);\n  outFields.put(\"message\", \"Sale not authorised by policy task \"+subject.taskName+\n    \" for time \"+df.format(timenow.getTime())+\n    \". Alcohol can not be sold between \"+df.format(midnight.getTime())+\n    \" and \"+df.format(eleven30.getTime()));\n  return true;\n}\nelse{\n  outFields.put(\"authorised\", true);\n  outFields.put(\"message\", \"Sale authorised by policy task \"+subject.taskName+\n    \" for time \"+df.format(timenow.getTime()));\n  return true;\n}\n\n/*\nThis task checks if a sale request is for an item that is an alcoholic drink.\nIf the local time is between 00:00:00 GMT and 11:30:00 GMT then the sale is not\nauthorised. Otherwise the sale is authorised. \nIn this implementation we assume that items with item_ID value between 1000 and \n2000 are all alcoholic drinks :-)\n*/"
+                  }
+               }
+            } ]
+         }
+      },
+      "events" : {
+         "key" : {
+            "name" : "MyFirstPolicyModel_Events",
+            "version" : "0.0.1"
+         },
+         "eventMap" : {
+            "entry" : [ {
+               "key" : {
+                  "name" : "SALE_AUTH",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "SALE_AUTH",
+                     "version" : "0.0.1"
+                  },
+                  "nameSpace" : "com.hyperm",
+                  "source" : "APEX",
+                  "target" : "POS",
+                  "parameter" : {
+                     "entry" : [ {
+                        "key" : "sale_ID",
+                        "value" : {
+                           "key" : "sale_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "sale_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "amount",
+                        "value" : {
+                           "key" : "amount",
+                           "fieldSchemaKey" : {
+                              "name" : "price_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "assistant_ID",
+                        "value" : {
+                           "key" : "assistant_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "assistant_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "notes",
+                        "value" : {
+                           "key" : "notes",
+                           "fieldSchemaKey" : {
+                              "name" : "notes_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : true
+                        }
+                     }, {
+                        "key" : "quantity",
+                        "value" : {
+                           "key" : "quantity",
+                           "fieldSchemaKey" : {
+                              "name" : "quantity_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "branch_ID",
+                        "value" : {
+                           "key" : "branch_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "branch_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "item_ID",
+                        "value" : {
+                           "key" : "item_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "item_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "authorised",
+                        "value" : {
+                           "key" : "authorised",
+                           "fieldSchemaKey" : {
+                              "name" : "authorised_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "time",
+                        "value" : {
+                           "key" : "time",
+                           "fieldSchemaKey" : {
+                              "name" : "timestamp_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "message",
+                        "value" : {
+                           "key" : "message",
+                           "fieldSchemaKey" : {
+                              "name" : "message_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : true
+                        }
+                     } ]
+                  }
+               }
+            }, {
+               "key" : {
+                  "name" : "SALE_INPUT",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "SALE_INPUT",
+                     "version" : "0.0.1"
+                  },
+                  "nameSpace" : "com.hyperm",
+                  "source" : "POS",
+                  "target" : "APEX",
+                  "parameter" : {
+                     "entry" : [ {
+                        "key" : "sale_ID",
+                        "value" : {
+                           "key" : "sale_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "sale_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "amount",
+                        "value" : {
+                           "key" : "amount",
+                           "fieldSchemaKey" : {
+                              "name" : "price_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "assistant_ID",
+                        "value" : {
+                           "key" : "assistant_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "assistant_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "notes",
+                        "value" : {
+                           "key" : "notes",
+                           "fieldSchemaKey" : {
+                              "name" : "notes_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : true
+                        }
+                     }, {
+                        "key" : "quantity",
+                        "value" : {
+                           "key" : "quantity",
+                           "fieldSchemaKey" : {
+                              "name" : "quantity_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "branch_ID",
+                        "value" : {
+                           "key" : "branch_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "branch_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "item_ID",
+                        "value" : {
+                           "key" : "item_ID",
+                           "fieldSchemaKey" : {
+                              "name" : "item_ID_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     }, {
+                        "key" : "time",
+                        "value" : {
+                           "key" : "time",
+                           "fieldSchemaKey" : {
+                              "name" : "timestamp_type",
+                              "version" : "0.0.1"
+                           },
+                           "optional" : false
+                        }
+                     } ]
+                  }
+               }
+            } ]
+         }
+      },
+      "albums" : {
+         "key" : {
+            "name" : "MyFirstPolicyModel_Albums",
+            "version" : "0.0.1"
+         },
+         "albums" : {
+            "entry" : [ ]
+         }
+      },
+      "schemas" : {
+         "key" : {
+            "name" : "MyFirstPolicyModel_Schemas",
+            "version" : "0.0.1"
+         },
+         "schemas" : {
+            "entry" : [ {
+               "key" : {
+                  "name" : "assistant_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "assistant_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Long"
+               }
+            }, {
+               "key" : {
+                  "name" : "authorised_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "authorised_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Boolean"
+               }
+            }, {
+               "key" : {
+                  "name" : "branch_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "branch_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Long"
+               }
+            }, {
+               "key" : {
+                  "name" : "item_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "item_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Long"
+               }
+            }, {
+               "key" : {
+                  "name" : "message_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "message_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.String"
+               }
+            }, {
+               "key" : {
+                  "name" : "notes_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "notes_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.String"
+               }
+            }, {
+               "key" : {
+                  "name" : "price_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "price_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Long"
+               }
+            }, {
+               "key" : {
+                  "name" : "quantity_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "quantity_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Integer"
+               }
+            }, {
+               "key" : {
+                  "name" : "sale_ID_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "sale_ID_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Long"
+               }
+            }, {
+               "key" : {
+                  "name" : "timestamp_type",
+                  "version" : "0.0.1"
+               },
+               "value" : {
+                  "key" : {
+                     "name" : "timestamp_type",
+                     "version" : "0.0.1"
+                  },
+                  "schemaFlavour" : "Java",
+                  "schemaDefinition" : "java.lang.Long"
+               }
+            } ]
+         }
+      }
+   }
+}
\ No newline at end of file
diff --git a/services/services-engine/src/test/resources/policymodels/SamplePolicyModelJAVASCRIPT.json b/services/services-engine/src/test/resources/policymodels/SamplePolicyModelJAVASCRIPT.json
new file mode 100644 (file)
index 0000000..2dc4bcd
--- /dev/null
@@ -0,0 +1,6684 @@
+{
+   "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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\nvar returnValue = executor.isTrue;"
+                           },
+                           "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestActCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestActStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestDecideCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestDecideStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestEstablishCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestEstablishStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(2));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(3));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(0));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            }, {
+               "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.type(\"java.lang.Byte\");\nexecutor.outFields.put(\"TestMatchCaseSelected\", new caseSelectedType(1));\n\nvar JavaDate = Java.type(\"java.util.Date\");\ntimeNow = new JavaDate();\nexecutor.outFields.put(\"TestMatchStateTime\", timeNow.getTime());\nexecutor.logger.debug(executor.eo);\n\nvar returnValue = executor.isTrue;"
+                  }
+               }
+            } ]
+         }
+      },
+      "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"
+               }
+            } ]
+         }
+      }
+   }
+}
\ No newline at end of file
index 95ea511..982444f 100644 (file)
@@ -21,7 +21,7 @@
                                 "name": "Context",
                                 "version": "0.0.1"
                             },
-                            "UUID": "ca36bfd8-6042-3633-8c85-89c66507c3bf",
+                            "UUID": "2708db15-3117-4ef5-ae06-44ad4bc72756",
                             "description": "Generated description for concept referred to by key \"Context:0.0.1\""
                         }
                     },
@@ -35,7 +35,7 @@
                                 "name": "Event0000",
                                 "version": "0.0.1"
                             },
-                            "UUID": "465a81cc-885f-3a4d-bc4e-1508da92b236",
+                            "UUID": "20f7f2d0-36e1-4134-93d9-8978e0ebb916",
                             "description": "Generated description for concept referred to by key \"Event0000:0.0.1\""
                         }
                     },
@@ -49,7 +49,7 @@
                                 "name": "Event0001",
                                 "version": "0.0.1"
                             },
-                            "UUID": "36b2d570-fff7-3a4b-bab2-6bf492f5129a",
+                            "UUID": "bfa262fc-f59d-4b05-af44-a5b5c218b314",
                             "description": "Generated description for concept referred to by key \"Event0001:0.0.1\""
                         }
                     },
@@ -63,7 +63,7 @@
                                 "name": "Event0002",
                                 "version": "0.0.1"
                             },
-                            "UUID": "ff6160a7-fb5e-379c-a6d2-2cd28053eacf",
+                            "UUID": "84eeac88-5031-4487-b67a-5a3ae13c1a89",
                             "description": "Generated description for concept referred to by key \"Event0002:0.0.1\""
                         }
                     },
@@ -77,7 +77,7 @@
                                 "name": "Event0003",
                                 "version": "0.0.1"
                             },
-                            "UUID": "5899e216-2abf-3781-abc4-2c257b92721e",
+                            "UUID": "7a46a411-1715-48d8-9e70-9b5d14bbbed4",
                             "description": "Generated description for concept referred to by key \"Event0003:0.0.1\""
                         }
                     },
@@ -91,7 +91,7 @@
                                 "name": "Event0004",
                                 "version": "0.0.1"
                             },
-                            "UUID": "7c2692a7-4587-3d09-abf9-d96b339a316f",
+                            "UUID": "da0ba1b4-f654-4e99-97b5-595de84cb3dc",
                             "description": "Generated description for concept referred to by key \"Event0004:0.0.1\""
                         }
                     },
                                 "name": "Event0100",
                                 "version": "0.0.1"
                             },
-                            "UUID": "b696048c-c0b0-34c1-8dbe-32ab6c8bc0c7",
+                            "UUID": "1267b311-60e2-48a7-8d0e-23c4ea21d863",
                             "description": "Generated description for concept referred to by key \"Event0100:0.0.1\""
                         }
                     },
                                 "name": "Event0101",
                                 "version": "0.0.1"
                             },
-                            "UUID": "edbfa868-2ab2-30fd-8078-4c7f67ca6122",
+                            "UUID": "84013070-ff2e-4295-acbd-4128f0509040",
                             "description": "Generated description for concept referred to by key \"Event0101:0.0.1\""
                         }
                     },
                                 "name": "Event0102",
                                 "version": "0.0.1"
                             },
-                            "UUID": "6b6ad2ff-ef63-3f7b-aabb-fba44f8de9d4",
+                            "UUID": "6fb7761e-b86f-47fc-8e19-6a116600764e",
                             "description": "Generated description for concept referred to by key \"Event0102:0.0.1\""
                         }
                     },
                                 "name": "Event0103",
                                 "version": "0.0.1"
                             },
-                            "UUID": "c2550912-10d9-3000-8826-377288cd6cb1",
+                            "UUID": "141cc707-009c-4e3b-a0f8-c346f074f590",
                             "description": "Generated description for concept referred to by key \"Event0103:0.0.1\""
                         }
                     },
                                 "name": "Event0104",
                                 "version": "0.0.1"
                             },
-                            "UUID": "f6d75b71-c8a7-3337-a121-88d68c389f5a",
+                            "UUID": "98f4d09f-ff73-4385-8876-df6d04b552cc",
                             "description": "Generated description for concept referred to by key \"Event0104:0.0.1\""
                         }
                     },
                                 "name": "Events",
                                 "version": "0.0.1"
                             },
-                            "UUID": "0215644c-4531-375c-8335-d558b4de8c03",
+                            "UUID": "889f6414-bc4d-4f29-b7af-175e63d23ac5",
                             "description": "Generated description for concept referred to by key \"Events:0.0.1\""
                         }
                     },
                                 "name": "ExternalContextAlbum",
                                 "version": "0.0.1"
                             },
-                            "UUID": "976a79e7-5c80-3c03-9503-da3f41fec395",
+                            "UUID": "64e4911c-5aed-467f-be19-277fb6170857",
                             "description": "Generated description for concept referred to by key \"ExternalContextAlbum:0.0.1\""
                         }
                     },
                                 "name": "GlobalContextAlbum",
                                 "version": "0.0.1"
                             },
-                            "UUID": "c95e9e5f-d2c7-3ac7-a205-ea3574530cb7",
+                            "UUID": "cb6a1892-8c3c-44df-b8a7-0e5a333ff9eb",
                             "description": "Generated description for concept referred to by key \"GlobalContextAlbum:0.0.1\""
                         }
                     },
                                 "name": "KeyInformation",
                                 "version": "0.0.1"
                             },
-                            "UUID": "1ff2f905-685c-3caf-95bc-0bbc90345888",
+                            "UUID": "f3126983-e26c-491f-8738-c57784ca4026",
                             "description": "Generated description for concept referred to by key \"KeyInformation:0.0.1\""
                         }
                     },
                                 "name": "Policies",
                                 "version": "0.0.1"
                             },
-                            "UUID": "f54c3b2b-be76-31c4-adfc-87c494c06808",
+                            "UUID": "b20a18d5-c419-4e90-8519-9c8f8b3ce2ab",
                             "description": "Generated description for concept referred to by key \"Policies:0.0.1\""
                         }
                     },
                                 "name": "Policy0",
                                 "version": "0.0.1"
                             },
-                            "UUID": "3410e939-30ca-32c4-a2d8-c30b6fee6eec",
+                            "UUID": "28943e99-871b-482b-953f-cfa7138da02c",
                             "description": "Generated description for concept referred to by key \"Policy0:0.0.1\""
                         }
                     },
                                 "name": "Policy0ContextAlbum",
                                 "version": "0.0.1"
                             },
-                            "UUID": "e27564c4-3cbf-3db2-9bf3-83ae80a2f907",
+                            "UUID": "2b1b738b-70f6-4b45-9d3c-a7e889b49993",
                             "description": "Generated description for concept referred to by key \"Policy0ContextAlbum:0.0.1\""
                         }
                     },
                                 "name": "Policy1",
                                 "version": "0.0.1"
                             },
-                            "UUID": "d0b2b585-f344-33b8-af9e-250e7f4cfbce",
+                            "UUID": "798ee6ea-f349-41bb-a281-7e4c22184e8c",
                             "description": "Generated description for concept referred to by key \"Policy1:0.0.1\""
                         }
                     },
                                 "name": "Policy1ContextAlbum",
                                 "version": "0.0.1"
                             },
-                            "UUID": "815d74ae-6fc0-3221-87b9-2bb1dfdfa7f0",
+                            "UUID": "eb9568d5-d95f-4713-9622-d95ef4cf81c3",
                             "description": "Generated description for concept referred to by key \"Policy1ContextAlbum:0.0.1\""
                         }
                     },
                                 "name": "SamplePolicyModelMVEL",
                                 "version": "0.0.1"
                             },
-                            "UUID": "a4cc4860-0bbc-389c-b270-e1bf7daffbe2",
+                            "UUID": "10979d21-947f-4920-83ae-63b827e8e80f",
                             "description": "Generated description for concept referred to by key \"SamplePolicyModelMVEL:0.0.1\""
                         }
                     },
                                 "name": "Task_Act0",
                                 "version": "0.0.1"
                             },
-                            "UUID": "0589ff20-adcc-3ce5-95fe-8d7978ed54ed",
+                            "UUID": "cb65d7fe-8d86-463c-aa16-0f4e6138d705",
                             "description": "Generated description for concept referred to by key \"Task_Act0:0.0.1\""
                         }
                     },
                                 "name": "Task_Act1",
                                 "version": "0.0.1"
                             },
-                            "UUID": "095b126d-ca8b-32c9-ad52-d744e817a79c",
+                            "UUID": "ea2b4e7a-1a79-440c-9cf0-6fddaad64c0c",
                             "description": "Generated description for concept referred to by key \"Task_Act1:0.0.1\""
                         }
                     },
                                 "name": "Task_Act2",
                                 "version": "0.0.1"
                             },
-                            "UUID": "3d786b4c-d9ee-3367-ab71-c67271a4ea2f",
+                            "UUID": "269e1d08-9ab4-48b8-8854-b65deb9d41b1",
                             "description": "Generated description for concept referred to by key \"Task_Act2:0.0.1\""
                         }
                     },
                                 "name": "Task_Act3",
                                 "version": "0.0.1"
                             },
-                            "UUID": "9231753e-20c5-3436-982f-9100340cc570",
+                            "UUID": "f9c4a91d-92aa-49ce-9b65-ab2378f6b048",
                             "description": "Generated description for concept referred to by key \"Task_Act3:0.0.1\""
                         }
                     },
                                 "name": "Task_Decide0",
                                 "version": "0.0.1"
                             },
-                            "UUID": "502383d3-483f-3a56-a426-2f0406674c8d",
+                            "UUID": "7fde2446-ce2a-4bc2-a675-96496c387c88",
                             "description": "Generated description for concept referred to by key \"Task_Decide0:0.0.1\""
                         }
                     },
                                 "name": "Task_Decide1",
                                 "version": "0.0.1"
                             },
-                            "UUID": "16598106-41c8-3b5a-99c6-5fcf6d1a5ddf",
+                            "UUID": "bc185db6-f18f-4fdd-b5b4-37d14b57f463",
                             "description": "Generated description for concept referred to by key \"Task_Decide1:0.0.1\""
                         }
                     },
                                 "name": "Task_Decide2",
                                 "version": "0.0.1"
                             },
-                            "UUID": "ad3a89f5-e369-3c66-b22c-669f7b3653b8",
+                            "UUID": "2c1e2ede-d67c-4845-90ac-a4d53311bfbb",
                             "description": "Generated description for concept referred to by key \"Task_Decide2:0.0.1\""
                         }
                     },
                                 "name": "Task_Decide3",
                                 "version": "0.0.1"
                             },
-                            "UUID": "56815939-1164-3867-9ed1-0a27ff8aafb3",
+                            "UUID": "1d1645a2-2852-4296-9f22-8f31ebe5386a",
                             "description": "Generated description for concept referred to by key \"Task_Decide3:0.0.1\""
                         }
                     },
                                 "name": "Task_Establish0",
                                 "version": "0.0.1"
                             },
-                            "UUID": "0db0c566-ecd7-3e27-9865-4b82c893abdb",
+                            "UUID": "f3739d83-a029-4ad8-a0b9-e5a028b369b2",
                             "description": "Generated description for concept referred to by key \"Task_Establish0:0.0.1\""
                         }
                     },
                                 "name": "Task_Establish1",
                                 "version": "0.0.1"
                             },
-                            "UUID": "6944a4c1-6201-317c-8d7e-eaa7f2ee0ea0",
+                            "UUID": "5351a5a5-4134-44fd-9a6f-fd37dbfc8aa7",
                             "description": "Generated description for concept referred to by key \"Task_Establish1:0.0.1\""
                         }
                     },
                                 "name": "Task_Establish2",
                                 "version": "0.0.1"
                             },
-                            "UUID": "0f766ea9-11cd-3e7d-a8c8-28c8dee6a85a",
+                            "UUID": "4206bb68-e710-4a01-aade-3e34771da63b",
                             "description": "Generated description for concept referred to by key \"Task_Establish2:0.0.1\""
                         }
                     },
                                 "name": "Task_Establish3",
                                 "version": "0.0.1"
                             },
-                            "UUID": "c3237a38-cc6d-3418-b1e1-0dc8b4bdcc66",
+                            "UUID": "cbaab234-b586-4f63-986e-ed0b317b6c66",
                             "description": "Generated description for concept referred to by key \"Task_Establish3:0.0.1\""
                         }
                     },
                                 "name": "Task_Match0",
                                 "version": "0.0.1"
                             },
-                            "UUID": "051bcfd5-cf73-3c89-8ee7-ea6e005ec059",
+                            "UUID": "24dbc71b-8773-4393-9c36-a5f4991e0f55",
                             "description": "Generated description for concept referred to by key \"Task_Match0:0.0.1\""
                         }
                     },
                                 "name": "Task_Match1",
                                 "version": "0.0.1"
                             },
-                            "UUID": "3754fe19-98f2-34a1-9f45-db31052208d8",
+                            "UUID": "42ecd25d-e8cb-48e4-890a-b0616528cf10",
                             "description": "Generated description for concept referred to by key \"Task_Match1:0.0.1\""
                         }
                     },
                                 "name": "Task_Match2",
                                 "version": "0.0.1"
                             },
-                            "UUID": "8c200709-a180-3c8b-916f-275ff49ce194",
+                            "UUID": "7e691294-a816-42f8-b124-9b5eac70b116",
                             "description": "Generated description for concept referred to by key \"Task_Match2:0.0.1\""
                         }
                     },
                                 "name": "Task_Match3",
                                 "version": "0.0.1"
                             },
-                            "UUID": "a1a879c6-4510-33b0-bbd0-ad6256189a37",
+                            "UUID": "bc7cad3c-85a5-40b4-9eda-51ac2387af05",
                             "description": "Generated description for concept referred to by key \"Task_Match3:0.0.1\""
                         }
                     },
                                 "name": "Tasks",
                                 "version": "0.0.1"
                             },
-                            "UUID": "a7fab96b-ce1c-37ce-bbb2-556b6db524a5",
+                            "UUID": "4386403d-b23c-4c3e-bc14-5d581f9de2f5",
                             "description": "Generated description for concept referred to by key \"Tasks:0.0.1\""
                         }
                     },
                                 "name": "TestCase",
                                 "version": "0.0.1"
                             },
-                            "UUID": "0a652886-c88d-3f8c-8994-ae9161e7c963",
+                            "UUID": "901a80ab-dd46-4697-b818-f669b9f9bce9",
                             "description": "Generated description for concept referred to by key \"TestCase:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem000",
                                 "version": "0.0.1"
                             },
-                            "UUID": "8efba9fa-371e-33df-a7d6-88b0284e7fd0",
+                            "UUID": "cfd19e5d-ab54-4e54-b4e5-1c5eaa832622",
                             "description": "Generated description for concept referred to by key \"TestContextItem000:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem001",
                                 "version": "0.0.1"
                             },
-                            "UUID": "3740077c-a2b3-356b-81dc-5ded2118a951",
+                            "UUID": "42c27d27-878d-4e9d-a139-e60c98f1c747",
                             "description": "Generated description for concept referred to by key \"TestContextItem001:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem002",
                                 "version": "0.0.1"
                             },
-                            "UUID": "b5c7df95-9af5-322f-9ea8-eb440a2bf926",
+                            "UUID": "83919fa0-ed4d-4981-908f-79913734a0f5",
                             "description": "Generated description for concept referred to by key \"TestContextItem002:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem003",
                                 "version": "0.0.1"
                             },
-                            "UUID": "b36f0aa5-0fb9-3e2c-8fa2-fddb7fd05f4b",
+                            "UUID": "194882b0-d987-4200-b82a-2c015605279b",
                             "description": "Generated description for concept referred to by key \"TestContextItem003:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem004",
                                 "version": "0.0.1"
                             },
-                            "UUID": "093cda11-eaeb-3a46-a5b6-d5e30c00935b",
+                            "UUID": "948d345b-39c3-4436-8036-ac9e5c561977",
                             "description": "Generated description for concept referred to by key \"TestContextItem004:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem005",
                                 "version": "0.0.1"
                             },
-                            "UUID": "569a758d-ba40-37c0-aebb-7ad138df25ac",
+                            "UUID": "fdad8cb5-4375-4bbf-9ffc-1e5ed8f4bae6",
                             "description": "Generated description for concept referred to by key \"TestContextItem005:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem006",
                                 "version": "0.0.1"
                             },
-                            "UUID": "252818d9-b61f-3962-a905-8865fb00fb04",
+                            "UUID": "5243c0ba-5c50-4835-a885-6cd988252bb7",
                             "description": "Generated description for concept referred to by key \"TestContextItem006:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem007",
                                 "version": "0.0.1"
                             },
-                            "UUID": "fe1a5f7c-c083-377b-a797-752b01fc6c73",
+                            "UUID": "29f0b15f-f7c3-46e5-98d7-59a34a677968",
                             "description": "Generated description for concept referred to by key \"TestContextItem007:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem008",
                                 "version": "0.0.1"
                             },
-                            "UUID": "aa87d007-d07e-3f67-8c6d-0ebc3d85479d",
+                            "UUID": "aac96de5-9f3c-452c-855f-e556cc807351",
                             "description": "Generated description for concept referred to by key \"TestContextItem008:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem009",
                                 "version": "0.0.1"
                             },
-                            "UUID": "126e7a3a-11b6-3f88-9397-c21d8819f859",
+                            "UUID": "7fdc1cc3-08c7-42a4-92a9-39e172fe2f1f",
                             "description": "Generated description for concept referred to by key \"TestContextItem009:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem00A",
                                 "version": "0.0.1"
                             },
-                            "UUID": "0e0e3dec-e03d-3379-a87b-1ecd4aa3d8cc",
+                            "UUID": "cf60cca6-a2e8-4371-b0e5-85ecaae44acc",
                             "description": "Generated description for concept referred to by key \"TestContextItem00A:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem00B",
                                 "version": "0.0.1"
                             },
-                            "UUID": "dbdc98df-3ff4-360c-b8d3-a7a836ac3de6",
+                            "UUID": "1671f996-e14e-407d-a503-f4de09f0785b",
                             "description": "Generated description for concept referred to by key \"TestContextItem00B:0.0.1\""
                         }
                     },
                                 "name": "TestContextItem00C",
                                 "version": "0.0.1"
                             },
-                            "UUID": "32a2f355-77f3-3b25-ace6-7a9c5763a5ad",
+                            "UUID": "814c4c28-9027-4516-9598-adc75fafa92a",
                             "description": "Generated description for concept referred to by key \"TestContextItem00C:0.0.1\""
                         }
                     },
                                 "name": "TestDatatypes",
                                 "version": "0.0.1"
                             },
-                            "UUID": "3f95472c-973e-30e2-95f1-bf00cbef909a",
+                            "UUID": "33e81d08-a62b-40ce-b7ff-50734427ebf9",
                             "description": "Generated description for concept referred to by key \"TestDatatypes:0.0.1\""
                         }
                     },
                                 "name": "TestExternalContextItem",
                                 "version": "0.0.1"
                             },
-                            "UUID": "610dbbd4-9149-3b3c-9af4-819056f0e169",
+                            "UUID": "5cd74351-8e27-4dee-a379-86124db50383",
                             "description": "Generated description for concept referred to by key \"TestExternalContextItem:0.0.1\""
                         }
                     },
                                 "name": "TestGlobalContextItem",
                                 "version": "0.0.1"
                             },
-                            "UUID": "07fa8f68-55f1-3fd0-81c1-749a379753a7",
+                            "UUID": "e8c9a056-5e95-4e14-bc96-0c0d13a34b18",
                             "description": "Generated description for concept referred to by key \"TestGlobalContextItem:0.0.1\""
                         }
                     },
                                 "name": "TestPolicyContextItem",
                                 "version": "0.0.1"
                             },
-                            "UUID": "d9c93cd1-539e-35c5-aaec-bb711ceb1251",
+                            "UUID": "92489659-02f3-4cb2-b25f-a6234ad71d36",
                             "description": "Generated description for concept referred to by key \"TestPolicyContextItem:0.0.1\""
                         }
                     },
                                 "name": "TestSlogan",
                                 "version": "0.0.1"
                             },
-                            "UUID": "683fe492-7eae-3ac7-9924-bb7850208d05",
+                            "UUID": "1c3b9345-32c2-4f7e-94ce-be36d0775e9e",
                             "description": "Generated description for concept referred to by key \"TestSlogan:0.0.1\""
                         }
                     },
                                 "name": "TestTemperature",
                                 "version": "0.0.1"
                             },
-                            "UUID": "bba25b6f-e3cd-3060-9022-4ef3a79f8eb0",
+                            "UUID": "9e719a99-1d73-4d40-b097-c9622b9ea2b4",
                             "description": "Generated description for concept referred to by key \"TestTemperature:0.0.1\""
                         }
                     },
                                 "name": "TestTimestamp",
                                 "version": "0.0.1"
                             },
-                            "UUID": "97b73937-c344-33c0-924c-4d26b6449564",
+                            "UUID": "3bcc8ef1-4cc5-4b7f-9dc4-83046d4a2a5d",
                             "description": "Generated description for concept referred to by key \"TestTimestamp:0.0.1\""
                         }
                     }
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestCase",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestSlogan",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTemperature",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     },
                                     {
                                             "fieldSchemaKey": {
                                                 "name": "TestTimestamp",
                                                 "version": "0.0.1"
-                                            },
-                                            "optional": false
+                                            }
                                         }
                                     }
                                 ]
             }
         }
     }
-}
+}
\ No newline at end of file