Merge "Delete keystores from apex"
diff --git a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/main/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/ApexRestRequestorConsumer.java b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/main/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/ApexRestRequestorConsumer.java
index 54dba7a..d7ee0a5 100644
--- a/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/main/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/ApexRestRequestorConsumer.java
+++ b/plugins/plugins-event/plugins-event-carrier/plugins-event-carrier-restrequestor/src/main/java/org/onap/policy/apex/plugins/event/carrier/restrequestor/ApexRestRequestorConsumer.java
@@ -99,8 +99,6 @@
     // The number of the next request runner thread
     private static long nextRequestRunnerThreadNo = 0;
 
-    private String untaggedUrl = null;
-
     // The pattern for filtering status code
     private Pattern httpCodeFilterPattern = null;
 
@@ -207,22 +205,6 @@
                     continue;
                 }
 
-                Properties inputExecutionProperties = restRequest.getExecutionProperties();
-                untaggedUrl = restConsumerProperties.getUrl();
-                if (inputExecutionProperties != null) {
-                    Set<String> names = restConsumerProperties.getKeysFromUrl();
-                    Set<String> inputProperty = inputExecutionProperties.stringPropertyNames();
-
-                    names.stream().map(Optional::of)
-                        .forEach(op -> op.filter(inputProperty::contains)
-                            .orElseThrow(() -> new ApexEventRuntimeException(
-                                "key\"" + op.get() + "\"specified on url \"" + restConsumerProperties.getUrl()
-                                    + "\"not found in execution properties passed by the current policy")));
-
-                    untaggedUrl = names.stream().reduce(untaggedUrl,
-                        (acc, str) -> acc.replace("{" + str + "}", (String) inputExecutionProperties.get(str)));
-                }
-
                 // Set the time stamp of the REST request
                 restRequest.setTimestamp(System.currentTimeMillis());
 
@@ -311,18 +293,31 @@
         public void run() {
             // Get the thread for the request
             restRequestThread = Thread.currentThread();
+            Properties inputExecutionProperties = request.getExecutionProperties();
+            String url = restConsumerProperties.getUrl();
+            Set<String> names = restConsumerProperties.getKeysFromUrl();
+            if (!names.isEmpty() && inputExecutionProperties != null) {
+                Set<String> inputProperty = inputExecutionProperties.stringPropertyNames();
 
+                names.stream().map(Optional::of)
+                    .forEach(op -> op.filter(inputProperty::contains)
+                        .orElseThrow(() -> new ApexEventRuntimeException(
+                            "key\"" + op.get() + "\"specified on url \"" + restConsumerProperties.getUrl()
+                                + "\"not found in execution properties passed by the current policy")));
+
+                url = names.stream().reduce(url,
+                    (acc, str) -> acc.replace("{" + str + "}", (String) inputExecutionProperties.get(str)));
+            }
             try {
                 if (restConsumerProperties.getHttpMethod().equals(HttpMethod.PUT)
                     || restConsumerProperties.getHttpMethod().equals(HttpMethod.POST)) {
-                    NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, untaggedUrl,
-                        request.getEvent().toString());
+                    NetLoggerUtil.log(EventType.OUT, CommInfrastructure.REST, url, request.getEvent().toString());
                 }
                 // Execute the REST request
-                final Response response = sendEventAsRestRequest(untaggedUrl);
+                final Response response = sendEventAsRestRequest(url);
                 // Get the event we received
                 final String eventJsonString = response.readEntity(String.class);
-                NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, untaggedUrl, eventJsonString);
+                NetLoggerUtil.log(EventType.IN, CommInfrastructure.REST, url, eventJsonString);
                 // Match the return code
                 Matcher isPass = httpCodeFilterPattern.matcher(String.valueOf(response.getStatus()));
 
@@ -336,7 +331,7 @@
                 // Check there is content
                 if (StringUtils.isBlank(eventJsonString)) {
                     final String errorMessage =
-                        "received an empty response to \"" + request + "\" from URL \"" + untaggedUrl + "\"";
+                        "received an empty response to \"" + request + "\" from URL \"" + url + "\"";
                     throw new ApexEventRuntimeException(errorMessage);
                 }
 
@@ -371,8 +366,8 @@
          *
          * @return the response to the REST request
          */
-        public Response sendEventAsRestRequest(String untaggedUrl) {
-            Builder headers = client.target(untaggedUrl).request(APPLICATION_JSON)
+        public Response sendEventAsRestRequest(String url) {
+            Builder headers = client.target(url).request(APPLICATION_JSON)
                 .headers(restConsumerProperties.getHttpHeadersAsMultivaluedMap());
             switch (restConsumerProperties.getHttpMethod()) {
                 case GET:
diff --git a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java
index fdc404c..d31940a 100644
--- a/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java
+++ b/services/services-engine/src/main/java/org/onap/policy/apex/service/engine/main/ApexEventUnmarshaller.java
@@ -226,13 +226,13 @@
                 // Ignore this event
                 continue;
             }
-
             if (!generateExecutionId) {
                 apexEvent.setExecutionId(executionId);
+                apexEvent.setExecutionProperties(executionProperties);
+            } else {
+                // Clean up executionProperties in case if it is not a response event to a request made from APEX
+                apexEvent.setExecutionProperties(new Properties(executionProperties));
             }
-
-            apexEvent.setExecutionProperties(executionProperties);
-
             // Cache synchronized events that are sent
             if (consumerParameters.isPeeredMode(EventHandlerPeeredMode.SYNCHRONOUS)) {
                 final SynchronousEventCache synchronousEventCache =
diff --git a/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/adapt/restclient/TestExecutionPropertyRest.java b/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/adapt/restclient/TestExecutionPropertyRest.java
index 0cf7dc6..b3f27c5 100644
--- a/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/adapt/restclient/TestExecutionPropertyRest.java
+++ b/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/adapt/restclient/TestExecutionPropertyRest.java
@@ -239,46 +239,6 @@
     }
 
     /**
-     * Test Http code filter set and tag Url are transformed correctly.
-     */
-    @Test
-    public void testReplaceUrlTag() throws Exception {
-        final Client client = ClientBuilder.newClient();
-        // @formatter:off
-        final String[] cliArgs = new String[] {
-            "-c",
-            "src/test/resources/policies/executionproperties/policy/ExecutionPropertiesRestTestPolicyModel.apex",
-            "-o",
-            "target/ExecutionPropertiesRestTestPolicyModel.json",
-            "-ac",
-            "src/test/resources/testdata/executionproperties/RESTHttpCodeFilterSetToTagUrlOK.json",
-            "-t",
-            "src/test/resources/tosca/ToscaTemplate.json",
-            "-ot",
-            "target/classes/APEXPolicy.json"
-        };
-        // @formatter:on
-
-        new ApexCliToscaEditorMain(cliArgs);
-
-        // @formatter:off
-        final String[] args = {
-            "-p",
-            "target/classes/APEXPolicy.json"
-        };
-        // @formatter:on
-        apexMain = new ApexMain(args);
-
-        await().atMost(5, TimeUnit.SECONDS).until(() -> {
-            Response response = client.target("http://localhost:32801/TestExecutionRest/apex/event/GetProperUrl")
-                .request("application/json").get();
-            return response.readEntity(String.class).contains("\"PostProperUrl\": 1");
-        });
-        assertTrue(apexMain.isAlive());
-        LOGGER.info("testReplaceUrlTag-OUTSTRING=\n" + outContent.toString() + "\nEnd-TagUrl");
-    }
-
-    /**
      * Test Http code filter set and multi-tag Url are transformed correctly.
      */
     @Test
diff --git a/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/executionproperties/DummyApexEventConsumer.java b/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/executionproperties/DummyApexEventConsumer.java
index c4b93b0..1dc6f13 100644
--- a/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/executionproperties/DummyApexEventConsumer.java
+++ b/testsuites/integration/integration-uservice-test/src/test/java/org/onap/policy/apex/testsuites/integration/uservice/executionproperties/DummyApexEventConsumer.java
@@ -1,7 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 Bell Canada. 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.
@@ -125,7 +125,7 @@
             RunTestEvent event = new RunTestEvent();
             event.setTestToRun(dummyConsumerProperties.getTestToRun());
             try {
-                eventReceiver.receiveEvent(executionProperties, event.toJson());
+                eventReceiver.receiveEvent(1, executionProperties, event.toJson());
             } catch (Exception e) {
                 String message = "event processing for executor properties testing failed: " + e.getMessage();
                 LOGGER.warn(message, e);
diff --git a/testsuites/integration/integration-uservice-test/src/test/resources/policies/executionproperties/logic/TaskFetchHttpCode.js b/testsuites/integration/integration-uservice-test/src/test/resources/policies/executionproperties/logic/TaskFetchHttpCode.js
index b60e2ac..f4d979d 100644
--- a/testsuites/integration/integration-uservice-test/src/test/resources/policies/executionproperties/logic/TaskFetchHttpCode.js
+++ b/testsuites/integration/integration-uservice-test/src/test/resources/policies/executionproperties/logic/TaskFetchHttpCode.js
@@ -1,6 +1,7 @@
 /*
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2019-2020 Nordix Foundation.
+ *  Modifications Copyright (C) 2021 Bell Canada. 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.
@@ -22,11 +23,7 @@
 
 executor.logger.debug("executionProperties: " + executor.getExecutionProperties());
 
-if (executor.getExecutionProperties().get("HTTP_CODE_STATUS") == "500")
-    executor.outFields.put("testToRun", "CodeFilterSet");
-else
-    executor.outFields.put("testToRun", "CodeFilterDefault");
-
+executor.outFields.put("testToRun", "CodeFilterSet");
 executor.logger.debug("testToRun: " + executor.outFields.get("testToRun"));
 
 true;
diff --git a/testsuites/integration/integration-uservice-test/src/test/resources/testdata/executionproperties/RESTHttpCodeFilterSetToTagUrlOK.json b/testsuites/integration/integration-uservice-test/src/test/resources/testdata/executionproperties/RESTHttpCodeFilterSetToTagUrlOK.json
deleted file mode 100644
index 22ab9e3..0000000
--- a/testsuites/integration/integration-uservice-test/src/test/resources/testdata/executionproperties/RESTHttpCodeFilterSetToTagUrlOK.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
-    "engineServiceParameters": {
-        "name": "MyApexEngine",
-        "version": "0.0.1",
-        "id": 45,
-        "instanceCount": 4,
-        "deploymentPort": 12561,
-        "engineParameters": {
-            "executorParameters": {
-                "JAVASCRIPT": {
-                    "parameterClassName": "org.onap.policy.apex.plugins.executor.javascript.JavascriptExecutorParameters"
-                }
-            }
-        }
-    },
-    "eventInputParameters": {
-         "GetCodeConsumer": {
-            "carrierTechnologyParameters": {
-                "carrierTechnology": "RESTCLIENT",
-                "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
-                "parameters": {
-                    "url": "http://localhost:32801/TestExecutionRest/apex/event/FetchHttpCode",
-                    "httpMethod": "GET",
-                    "httpHeaders" : [
-                    ],
-                    "httpCodeFilter" : "[1-5][0][0-5]"
-                }
-            },
-            "eventProtocolParameters": {
-                "eventProtocol": "JSON",
-                "parameters": {
-                    "testToRun": "FetchHttpCode"
-                }
-            },
-            "eventName": "Event0200"
-        }
-    },
-    "eventOutputParameters": {
-        "FirstProducer": {
-            "carrierTechnologyParameters": {
-                "carrierTechnology": "RESTCLIENT",
-                "parameterClassName": "org.onap.policy.apex.plugins.event.carrier.restclient.RestClientCarrierTechnologyParameters",
-                "parameters": {
-                    "url": "http://localhost:32801/TestExecutionRest/apex/event/{tagId}",
-                    "httpMethod": "PUT",
-                    "httpHeaders" : [
-                        ["Content-Type", "application/json"],
-                        ["Date", "Tue, 24 Jul 2019 14:57:12 GMT"]
-                    ]
-                }
-            },
-            "eventProtocolParameters": {
-                "eventProtocol": "JSON"
-            },
-            "eventName": "Event0201"
-        }
-    }
-}