* ============LICENSE_START=======================================================
  *  Copyright (C) 2019 Intel Crop. All rights reserved.
  *  Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ *  Modifications Copyright (C) 2022 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
             writer.write("policyName: " + name);
             if (fileForwarderParameters.isVerbose()) {
                 writer.newLine();
-                writer.write("policy: " + pol.toString());
+                writer.write("policy: " + pol);
             }
-            LOGGER.debug("Sucessfully forwarded the policy to store into file {}.", path);
+            LOGGER.debug("Successfully forwarded the policy to store into file {}.", path);
         } catch (final InvalidPathException | IOException exp) {
             final String message = "Error sending policy to file under path:" + fileForwarderParameters.getPath();
             throw new PolicyForwardingException(message, exp);
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2022 Nordix Foundation.
- *  Modifications Copyright (C) 2022 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 import javax.ws.rs.client.Entity;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
     private static final String COMMISSION_AUTOMATION_COMPOSITION_URI = "/onap/acm/v2/commission";
     private static final Logger LOGGER = LoggerFactory.getLogger(LifecycleApiAutomationCompositionForwarder.class);
 
-    private LifecycleApiAutomationCompositionForwarderParameters forwarderParameters;
     private HttpClient automationCompositionClient;
 
     /**
      */
     @Override
     public void configure(final String parameterGroupName) throws HttpClientConfigException {
-        forwarderParameters = ParameterService.get(parameterGroupName);
+        LifecycleApiAutomationCompositionForwarderParameters forwarderParameters =
+            ParameterService.get(parameterGroupName);
 
         automationCompositionClient = HttpClientFactoryInstance.getClientFactory().build(
-                forwarderParameters.getAutomationCompositionRuntimeParameters());
+            forwarderParameters.getAutomationCompositionRuntimeParameters());
     }
 
     /**
         }
         if (!failedEntities.isEmpty()) {
             throw new PolicyForwardingException(
-                    "Failed forwarding the following entities: " + Arrays.toString(failedEntities.toArray()));
+                "Failed forwarding the following entities: " + Arrays.toString(failedEntities.toArray()));
         }
     }
 
             if (entity instanceof ToscaServiceTemplate) {
                 final var toscaServiceTemplate = (ToscaServiceTemplate) entity;
                 if (null != toscaServiceTemplate.getToscaTopologyTemplate()
-                        && null != toscaServiceTemplate.getNodeTypes()
-                        && null != toscaServiceTemplate.getDataTypes()) {
+                    && null != toscaServiceTemplate.getNodeTypes()
+                    && null != toscaServiceTemplate.getDataTypes()) {
                     commissionAutomationComposition(toscaServiceTemplate);
                 }
             } else {
         }
     }
 
-    private Response commissionAutomationComposition(final ToscaServiceTemplate toscaServiceTemplate)
-            throws PolicyForwardingException {
-        return invokeHttpClient(Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON),
-                COMMISSION_AUTOMATION_COMPOSITION_URI);
+    private void commissionAutomationComposition(final ToscaServiceTemplate toscaServiceTemplate)
+        throws PolicyForwardingException {
+        invokeHttpClient(Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON));
     }
 
-    private Response invokeHttpClient(final Entity<?> entity, final String path)
-            throws PolicyForwardingException {
-        var response = automationCompositionClient.post(path, entity, Map.of(HttpHeaders.ACCEPT,
-                        MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON));
+    private void invokeHttpClient(final Entity<?> entity) throws PolicyForwardingException {
+        var response = automationCompositionClient.post(
+            LifecycleApiAutomationCompositionForwarder.COMMISSION_AUTOMATION_COMPOSITION_URI, entity,
+            Map.of(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON, HttpHeaders.CONTENT_TYPE,
+                MediaType.APPLICATION_JSON));
         if (response.getStatus() / 100 != 2) {
-            LOGGER.error(
-                    "Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}",
-                    path, entity, response.getStatus(), response.getStatusInfo());
+            LOGGER.error("Invocation of path {} failed for entity {}. Response status: {}, Response status info: {}",
+                LifecycleApiAutomationCompositionForwarder.COMMISSION_AUTOMATION_COMPOSITION_URI,
+                entity, response.getStatus(), response.getStatusInfo());
             throw new PolicyForwardingException("Failed creating the entity - " + entity);
         }
-        return response;
     }
 }
 
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2022 Nordix Foundation.
- *  Modifications Copyright (C) 2022 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2019,2022 Nordix Foundation.
+ *  Copyright (C) 2019, 2022 Nordix Foundation.
  *  Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2021 Bell Canada.
  * ================================================================================
         }
     }
 
-    private Response createPolicyType(final ToscaServiceTemplate toscaServiceTemplate)
+    private void createPolicyType(final ToscaServiceTemplate toscaServiceTemplate)
             throws PolicyForwardingException {
-        return invokeHttpClient(Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON), CREATE_POLICY_TYPE_URI,
-                true);
+        invokeHttpClient(Entity.entity(toscaServiceTemplate, MediaType.APPLICATION_JSON), CREATE_POLICY_TYPE_URI,
+            true);
     }
 
     private Response createPolicy(final ToscaServiceTemplate toscaServiceTemplate) throws PolicyForwardingException {
                 CREATE_POLICY_URI, true);
     }
 
-    private Response deployPolicy(final ToscaServiceTemplate toscaServiceTemplate) throws PolicyForwardingException {
+    private void deployPolicy(final ToscaServiceTemplate toscaServiceTemplate) throws PolicyForwardingException {
         final var pdpPolicies = new PdpDeployPolicies();
         final List<ToscaConceptIdentifierOptVersion> policyIdentifierList = new ArrayList<>();
         for (final Map<String, ToscaPolicy> policyMap : toscaServiceTemplate.getToscaTopologyTemplate().getPolicies()) {
             policyIdentifierList.add(toscaPolicyIdentifier);
         }
         pdpPolicies.setPolicies(policyIdentifierList);
-        return invokeHttpClient(Entity.entity(pdpPolicies, MediaType.APPLICATION_JSON), DEPLOY_POLICY_URI, false);
+        invokeHttpClient(Entity.entity(pdpPolicies, MediaType.APPLICATION_JSON), DEPLOY_POLICY_URI, false);
     }
 
     private Response invokeHttpClient(final Entity<?> entity, final String path, final boolean wantApi)
 
 
 package org.onap.policy.distribution.reception.decoding.policy.file;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
-import java.util.Optional;
-import java.util.stream.Collectors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
+import java.util.HashMap;
+import java.util.Map;
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.distribution.model.Csar;
     public Collection<ToscaEntity> decode(final Csar csar) throws PolicyDecodingException {
         final Collection<ToscaEntity> automationCompositionList = new ArrayList<>();
 
-        try (var zipFile = new ZipFile(csar.getCsarFilePath())) {
-            final List<? extends ZipEntry> entries = zipFile.stream()
-                .filter(entry -> entry.getName().contains(decoderParameters.getAutomationCompositionType()))
-                .collect(Collectors.toList());
-
-            for (ZipEntry entry : entries) {
-                ReceptionUtil.validateZipEntry(entry.getName(), csar.getCsarFilePath(), entry.getSize());
-                final ToscaServiceTemplate automationComposition = ReceptionUtil.decodeFile(zipFile, entry);
+        try {
+            Map<String, ToscaServiceTemplate> templates = new HashMap<>();
+            ReceptionUtil.unzip(csar.getCsarFilePath(), templates,
+                decoderParameters.getAutomationCompositionType(), NODE_TYPES, DATA_TYPES);
 
-                if (null != automationComposition.getToscaTopologyTemplate()) {
-                    validateTypes(zipFile, NODE_TYPES)
-                        .ifPresent(node -> automationComposition.setNodeTypes(node.getNodeTypes()));
+            var node = templates.get(NODE_TYPES);
+            var data = templates.get(DATA_TYPES);
 
-                    validateTypes(zipFile, DATA_TYPES)
-                        .ifPresent(data -> automationComposition.setDataTypes(data.getDataTypes()));
+            templates.forEach((entry, t) -> {
+                if (entry.contains(decoderParameters.getAutomationCompositionType())
+                    && t.getToscaTopologyTemplate() != null) {
+                    t.setNodeTypes(node != null ? node.getNodeTypes() : null);
+                    t.setDataTypes(data != null ? data.getDataTypes() : null);
 
-                    automationCompositionList.add(automationComposition);
+                    automationCompositionList.add(t);
                 }
-            }
-        } catch (final IOException | CoderException exp) {
+            });
+
+        } catch (final CoderException exp) {
             throw new PolicyDecodingException("Failed decoding the acm", exp);
         }
 
         return automationCompositionList;
     }
-
-    /**
-     * Decode and validate if node or data type is available withing ACM csar file.
-     *
-     * @param zipFile full csar file
-     * @return tosca template with parsed node/data type
-     * @throws CoderException if file can't be parsed
-     */
-    private Optional<ToscaServiceTemplate> validateTypes(final ZipFile zipFile, String type)
-        throws CoderException {
-
-        try {
-            ToscaServiceTemplate template = null;
-            final Optional<? extends ZipEntry> file = zipFile.stream()
-                .filter(entry -> entry.getName().contains(type)).findFirst();
-
-            if (file.isPresent()) {
-                template = ReceptionUtil.decodeFile(zipFile, file.get());
-            }
-            return Optional.ofNullable(template);
-        } catch (final IOException | CoderException exp) {
-            throw new CoderException("Couldn't decode " + type + " type", exp);
-        }
-    }
 }
 
 
 package org.onap.policy.distribution.reception.decoding.policy.file;
 
-import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
+import java.util.HashMap;
+import java.util.Map;
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.distribution.model.Csar;
      */
     @Override
     public Collection<ToscaEntity> decode(final Csar csar) throws PolicyDecodingException {
-        final Collection<ToscaEntity> policyList = new ArrayList<>();
+        final Collection<ToscaEntity> policyList;
 
-        try (var zipFile = new ZipFile(csar.getCsarFilePath())) {
-            final List<? extends ZipEntry> entries = zipFile.stream()
-                .filter(entry -> entry.getName().contains(decoderParameters.getPolicyTypeFileName())
-                    || entry.getName().contains(decoderParameters.getPolicyFileName())).collect(Collectors.toList());
+        try {
+            Map<String, ToscaServiceTemplate> templates = new HashMap<>();
+            ReceptionUtil.unzip(csar.getCsarFilePath(), templates, decoderParameters.getPolicyFileName(),
+                decoderParameters.getPolicyTypeFileName());
+            policyList = new ArrayList<>(templates.values());
 
-            for (ZipEntry entry : entries) {
-                ReceptionUtil.validateZipEntry(entry.getName(), csar.getCsarFilePath(), entry.getSize());
-                final ToscaServiceTemplate policy = ReceptionUtil.decodeFile(zipFile, entry);
-                policyList.add(policy);
-            }
-        } catch (final IOException | CoderException exp) {
+        } catch (final CoderException exp) {
             throw new PolicyDecodingException("Failed decoding the policy", exp);
         }
 
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
- *  Copyright (C) 2019 Nordix Foundation.
+ *  Copyright (C) 2019, 2022 Nordix Foundation.
  *  Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
  * ================================================================================
 import java.io.IOException;
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicInteger;
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.distribution.model.Csar;
     private SdcReceptionHandlerStatus sdcReceptionHandlerStatus = SdcReceptionHandlerStatus.STOPPED;
     private IDistributionClient distributionClient;
     private SdcConfiguration sdcConfig;
-    private AtomicInteger nbOfNotificationsOngoing = new AtomicInteger();
+    private final AtomicInteger nbOfNotificationsOngoing = new AtomicInteger();
     private int retryDelay;
     private SdcClientHandler sdcClientHandler;
 
     @Override
     protected void initializeReception(final String parameterGroupName) {
         final SdcReceptionHandlerConfigurationParameterGroup handlerParameters =
-                ParameterService.get(parameterGroupName);
+            ParameterService.get(parameterGroupName);
         retryDelay = handlerParameters.getRetryDelay() < 30 ? 30 : handlerParameters.getRetryDelay();
         sdcConfig = new SdcConfiguration(handlerParameters);
         distributionClient = createSdcDistributionClient();
      *
      * @param newStatus the new status
      */
-    private final synchronized void changeSdcReceptionHandlerStatus(final SdcReceptionHandlerStatus newStatus) {
+    private synchronized void changeSdcReceptionHandlerStatus(final SdcReceptionHandlerStatus newStatus) {
         switch (newStatus) {
             case INIT:
             case STOPPED:
 
     /**
      * Method to initialize the SDC client.
-     *
      */
     protected void initializeSdcClient() {
 
         final IDistributionClientResult clientResult = distributionClient.init(sdcConfig, this);
         if (!clientResult.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {
             LOGGER.error("SDC client initialization failed with reason: {}. Initialization will be retried after {} {}",
-                    clientResult.getDistributionMessageResult(), retryDelay, SECONDS);
+                clientResult.getDistributionMessageResult(), retryDelay, SECONDS);
             return;
         }
         LOGGER.debug("SDC Client is initialized successfully");
 
     /**
      * Method to start the SDC client.
-     *
      */
     protected void startSdcClient() {
 
         final IDistributionClientResult clientResult = distributionClient.start();
         if (!clientResult.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {
             LOGGER.error("SDC client start failed with reason: {}. Start will be retried after {} {}",
-                    clientResult.getDistributionMessageResult(), retryDelay, SECONDS);
+                clientResult.getDistributionMessageResult(), retryDelay, SECONDS);
             return;
         }
         LOGGER.debug("SDC Client is started successfully");
 
     /**
      * Method to stop the SDC client.
-     *
      */
     protected void stopSdcClient() {
         LOGGER.debug("Going to stop the SDC Client...");
         final IDistributionClientResult clientResult = distributionClient.stop();
         if (!clientResult.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {
             LOGGER.error("SDC client stop failed with reason: {}. Stop will be retried after {} {}",
-                    clientResult.getDistributionMessageResult(), retryDelay, SECONDS);
+                clientResult.getDistributionMessageResult(), retryDelay, SECONDS);
             return;
         }
         LOGGER.debug("SDC Client is stopped successfully");
         for (final IArtifactInfo artifact : notificationData.getServiceArtifacts()) {
             try {
                 final IDistributionClientDownloadResult resultArtifact =
-                        downloadTheArtifact(artifact, notificationData);
+                    downloadTheArtifact(artifact, notificationData);
                 final var filePath = writeArtifactToFile(artifact, resultArtifact);
                 final var csarObject = new Csar(filePath.toString());
                 inputReceived(csarObject);
                 sendDistributionStatus(DistributionStatusType.DEPLOY, artifact.getArtifactURL(),
-                        notificationData.getDistributionID(), DistributionStatusEnum.DEPLOY_OK, null);
+                    notificationData.getDistributionID(), DistributionStatusEnum.DEPLOY_OK, null);
                 deleteArtifactFile(filePath);
             } catch (final ArtifactDownloadException | PolicyDecodingException exp) {
                 LOGGER.error("Failed to process csar service artifacts ", exp);
                 artifactsProcessedSuccessfully = false;
                 sendDistributionStatus(DistributionStatusType.DEPLOY, artifact.getArtifactURL(),
-                        notificationData.getDistributionID(), DistributionStatusEnum.DEPLOY_ERROR,
-                        "Failed to deploy the artifact due to: " + exp.getMessage());
+                    notificationData.getDistributionID(), DistributionStatusEnum.DEPLOY_ERROR,
+                    "Failed to deploy the artifact due to: " + exp.getMessage());
             }
         }
         if (artifactsProcessedSuccessfully) {
             DistributionStatisticsManager.updateDistributionSuccessCount();
             sendComponentDoneStatus(notificationData.getDistributionID(), DistributionStatusEnum.COMPONENT_DONE_OK,
-                    null);
+                null);
         } else {
             DistributionStatisticsManager.updateDistributionFailureCount();
             sendComponentDoneStatus(notificationData.getDistributionID(), DistributionStatusEnum.COMPONENT_DONE_ERROR,
-                    "Failed to process the artifact");
+                "Failed to process the artifact");
         }
     }
 
      * @throws ArtifactDownloadException if download fails
      */
     private IDistributionClientDownloadResult downloadTheArtifact(final IArtifactInfo artifact,
-            final INotificationData notificationData) throws ArtifactDownloadException {
+                                                                  final INotificationData notificationData)
+        throws ArtifactDownloadException {
 
         DistributionStatisticsManager.updateTotalDownloadCount();
         final IDistributionClientDownloadResult downloadResult = distributionClient.download(artifact);
         if (!downloadResult.getDistributionActionResult().equals(DistributionActionResultEnum.SUCCESS)) {
             DistributionStatisticsManager.updateDownloadFailureCount();
             final String message = "Failed to download artifact with name: " + artifact.getArtifactName() + " due to: "
-                    + downloadResult.getDistributionMessageResult();
+                + downloadResult.getDistributionMessageResult();
             LOGGER.error(message);
             sendDistributionStatus(DistributionStatusType.DOWNLOAD, artifact.getArtifactURL(),
-                    notificationData.getDistributionID(), DistributionStatusEnum.DOWNLOAD_ERROR, message);
+                notificationData.getDistributionID(), DistributionStatusEnum.DOWNLOAD_ERROR, message);
             throw new ArtifactDownloadException(message);
         }
         DistributionStatisticsManager.updateDownloadSuccessCount();
         sendDistributionStatus(DistributionStatusType.DOWNLOAD, artifact.getArtifactURL(),
-                notificationData.getDistributionID(), DistributionStatusEnum.DOWNLOAD_OK, null);
+            notificationData.getDistributionID(), DistributionStatusEnum.DOWNLOAD_OK, null);
         return downloadResult;
     }
 
     /**
      * Method to write the downloaded distribution artifact to local file system.
      *
-     * @param artifact the notification artifact
+     * @param artifact       the notification artifact
      * @param resultArtifact the download result artifact
      * @return the local path of written file
      * @throws ArtifactDownloadException if error occurs while writing the artifact
      */
     private Path writeArtifactToFile(final IArtifactInfo artifact,
-            final IDistributionClientDownloadResult resultArtifact) throws ArtifactDownloadException {
+                                     final IDistributionClientDownloadResult resultArtifact)
+        throws ArtifactDownloadException {
         try {
             final byte[] payloadBytes = resultArtifact.getArtifactPayload();
-            final var tempArtifactFile = File.createTempFile(artifact.getArtifactName(), ".csar");
+
+            final var tempArtifactFile = Optional.ofNullable(safelyCreateFile(artifact.getArtifactName()))
+                .orElseThrow(() -> new ArtifactDownloadException("Failed to create temporary file."));
             try (var fileOutputStream = new FileOutputStream(tempArtifactFile)) {
                 fileOutputStream.write(payloadBytes, 0, payloadBytes.length);
                 return tempArtifactFile.toPath();
     /**
      * Sends the distribution status to SDC using the input values.
      *
-     * @param statusType the status type
-     * @param artifactUrl the artifact url
+     * @param statusType     the status type
+     * @param artifactUrl    the artifact url
      * @param distributionId the distribution id
-     * @param status the status
-     * @param errorReason the error reason
+     * @param status         the status
+     * @param errorReason    the error reason
      */
     private void sendDistributionStatus(final DistributionStatusType statusType, final String artifactUrl,
-            final String distributionId, final DistributionStatusEnum status, final String errorReason) {
+                                        final String distributionId, final DistributionStatusEnum status,
+                                        final String errorReason) {
 
         IDistributionClientResult clientResult;
         final IDistributionStatusMessage message = DistributionStatusMessage.builder().artifactUrl(artifactUrl)
-                        .consumerId(sdcConfig.getConsumerID()).distributionId(distributionId).distributionStatus(status)
-                        .timestamp(System.currentTimeMillis()).build();
+            .consumerId(sdcConfig.getConsumerID()).distributionId(distributionId).distributionStatus(status)
+            .timestamp(System.currentTimeMillis()).build();
         if (DistributionStatusType.DOWNLOAD.equals(statusType)) {
             if (errorReason != null) {
                 clientResult = distributionClient.sendDownloadStatus(message, errorReason);
         }
         final var loggerMessage = new StringBuilder();
         loggerMessage.append("distribution status to SDC with values - ").append("DistributionId")
-                .append(distributionId).append(" Artifact: ").append(artifactUrl).append(" StatusType: ")
-                .append(statusType.name()).append(" Status: ").append(status.name());
+            .append(distributionId).append(" Artifact: ").append(artifactUrl).append(" StatusType: ")
+            .append(statusType.name()).append(" Status: ").append(status.name());
         if (errorReason != null) {
             loggerMessage.append(" ErrorReason: ").append(errorReason);
         }
      * Sends the component done status to SDC using the input values.
      *
      * @param distributionId the distribution Id
-     * @param status the distribution status
-     * @param errorReason the error reason
+     * @param status         the distribution status
+     * @param errorReason    the error reason
      */
     private void sendComponentDoneStatus(final String distributionId, final DistributionStatusEnum status,
-            final String errorReason) {
+                                         final String errorReason) {
         IDistributionClientResult clientResult;
         final IComponentDoneStatusMessage message = ComponentDoneStatusMessage.builder()
-                        .consumerId(sdcConfig.getConsumerID()).distributionId(distributionId).distributionStatus(status)
-                        .timestamp(System.currentTimeMillis()).build();
+            .consumerId(sdcConfig.getConsumerID()).distributionId(distributionId).distributionStatus(status)
+            .timestamp(System.currentTimeMillis()).build();
         if (errorReason == null) {
             clientResult = distributionClient.sendComponentDoneStatus(message);
         } else {
 
         final var loggerMessage = new StringBuilder();
         loggerMessage.append("component done status to SDC with values - ").append("DistributionId")
-                .append(distributionId).append(" Status: ").append(status.name());
+            .append(distributionId).append(" Status: ").append(status.name());
         if (errorReason != null) {
             loggerMessage.append(" ErrorReason: ").append(errorReason);
         }
             sdcReceptionHandlerStatus = newStatus;
         }
     }
+
+    private File safelyCreateFile(String prefix) throws IOException {
+        File file = Files.createTempFile(prefix, ".csar").toFile();
+        if (file.setReadable(true, false)
+            && file.setWritable(true, true)) {
+            return file;
+        }
+        return null;
+    }
 }
 
 
 package org.onap.policy.distribution.reception.util;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.InvalidClassException;
 import java.nio.file.Path;
+import java.util.Enumeration;
+import java.util.Map;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 import org.onap.policy.common.utils.coder.CoderException;
 
     private static final StandardCoder coder = new StandardCoder();
     private static final StandardYamlCoder yamlCoder = new StandardYamlCoder();
-    private static final long MAX_FILE_SIZE = 512L * 1024;
+    private static final long THRESHOLD_SIZE = 512L * 1024;
+    private static final int THRESHOLD_ENTRIES = 10000;
+    private static final double THRESHOLD_RATIO = 20;
 
     /**
      * Method to ensure validation of entries in the Zipfile. Attempts to solve path
      * injection java security issues.
      *
      * @param entryName name of the ZipEntry to check
-     * @param csarPath Absolute path to the csar the ZipEntry is in
-     * @param entrySize size of the ZipEntry
+     * @param csarPath  Absolute path to the csar the ZipEntry is in
      * @throws PolicyDecodingException if the file size is too large
      */
-    public static void validateZipEntry(String entryName, String csarPath, long entrySize)
-            throws PolicyDecodingException {
-        //
-        // Check file size
-        //
-        if (entrySize > MAX_FILE_SIZE) {
-            throw new PolicyDecodingException("Zip entry for " + entryName + " is too large " + entrySize);
-        }
+    public static void validateZipEntry(String entryName, String csarPath)
+        throws PolicyDecodingException {
         //
         // Now ensure that there is no path injection
         //
     /**
      * Method to decode either a json or yaml file into an object.
      *
-     * @param zipFile the zip file
-     * @param entry the entry to read in the zip file.
+     * @param zipEntryName the zip file name.
+     * @param entryData    the data from entry to decode.
      * @return the decoded ToscaServiceTemplate object.
      * @throws CoderException IOException if the file decoding fails.
      */
-    public static ToscaServiceTemplate decodeFile(ZipFile zipFile, final ZipEntry entry)
-            throws IOException, CoderException {
+    public static ToscaServiceTemplate decodeFile(String zipEntryName, InputStream entryData) throws CoderException {
         ToscaServiceTemplate toscaServiceTemplate = null;
-        if (entry.getName().endsWith(".json")) {
-            toscaServiceTemplate = coder.decode(zipFile.getInputStream(entry), ToscaServiceTemplate.class);
-        } else if (entry.getName().endsWith(".yml")) {
-            toscaServiceTemplate = yamlCoder.decode(zipFile.getInputStream(entry), ToscaServiceTemplate.class);
+        if (zipEntryName.endsWith(".json")) {
+            toscaServiceTemplate = coder.decode(entryData, ToscaServiceTemplate.class);
+        } else if (zipEntryName.endsWith(".yml")) {
+            toscaServiceTemplate = yamlCoder.decode(entryData, ToscaServiceTemplate.class);
         }
         return toscaServiceTemplate;
     }
+
+    /**
+     * Unzip the csar file following the security recommendations from sonar cloud to avoid a zip bomb attack.
+     *
+     * @param csarFilename      csar file which is a zip file.
+     * @param unzippedTemplates the templates which should be unzipped.
+     * @param filter            contains the keywords for the entry name.
+     * @throws PolicyDecodingException in case zip file can't be read
+     * @throws CoderException          in case files can't be decoded to a template
+     */
+    public static void unzip(String csarFilename, Map<String, ToscaServiceTemplate> unzippedTemplates, String... filter)
+        throws PolicyDecodingException, CoderException {
+        try (var zipFile = new ZipFile(csarFilename)) {
+            int totalSizeArchive = 0;
+            int totalEntryArchive = 0;
+
+            Enumeration<? extends ZipEntry> entries = zipFile.entries();
+
+            while (entries.hasMoreElements()) {
+                ZipEntry entry = entries.nextElement();
+                totalEntryArchive++;
+
+                if (checkEntryFilter(entry.getName(), filter)) {
+                    validateZipEntry(entry.getName(), csarFilename);
+                    InputStream entryData = new BufferedInputStream(zipFile.getInputStream(entry));
+
+                    int bufferedBytes;
+                    byte[] buffer = new byte[2048];
+                    int totalSizeEntry = 0;
+
+                    boolean isValidThreshold = true;
+                    while ((bufferedBytes = entryData.read(buffer)) > 0 && isValidThreshold) {
+                        totalSizeEntry += bufferedBytes;
+                        totalSizeArchive += bufferedBytes;
+
+                        double compressionRatio = Math.floorDiv(totalSizeEntry, entry.getCompressedSize());
+                        isValidThreshold = compressionRatio <= THRESHOLD_RATIO;
+                    }
+
+                    unzippedTemplates.put(entry.getName(), decodeFile(entry.getName(), zipFile.getInputStream(entry)));
+                }
+
+                if (totalSizeArchive > THRESHOLD_SIZE || totalEntryArchive > THRESHOLD_ENTRIES) {
+                    // the uncompressed data size is too much for the application resource capacity
+                    break;
+                }
+            }
+        } catch (IOException exception) {
+            throw new PolicyDecodingException("Couldn't read the zipFile", exception);
+        }
+    }
+
+    /**
+     * Check if entry is the one to be unzipped based on the filter.
+     *
+     * @param entryName zip file entry name.
+     * @param filter    the list of filter to be looked up on entry names.
+     * @return true if entry is in filter, false otherwise.
+     */
+    public static boolean checkEntryFilter(String entryName, String... filter) {
+        for (String f : filter) {
+            if (entryName.contains(f)) {
+                return true;
+            }
+        }
+        return false;
+    }
 }
 
 
         assertTrue(decoder.canHandle(csar));
         assertThatThrownBy(() -> decoder.decode(csar)).isInstanceOf(PolicyDecodingException.class)
-        .hasMessageContaining("Failed decoding the acm");
+        .hasMessageContaining("Couldn't read the zipFile");
     }
 }
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
- *  Modifications Copyright (C) 2019-2020 Nordix Foundation.
+ *  Modifications Copyright (C) 2019-2020, 2022 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
         assertTrue(decoder.canHandle(csar));
         assertThatThrownBy(() -> decoder.decode(csar)).isInstanceOf(PolicyDecodingException.class)
-        .hasMessageContaining("Failed decoding the policy");
+        .hasMessageContaining("Couldn't read the zipFile");
     }
 
 
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Intel. All rights reserved.
- *  Copyright (C) 2019 Nordix Foundation.
- *  Modifications Copyright (C) 2020 Nordix Foundation
+ *  Copyright (C) 2019-2020, 2022 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 import org.junit.rules.TemporaryFolder;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
 import org.mockito.runners.MockitoJUnitRunner;
 import org.mockito.stubbing.Answer;
 import org.onap.policy.common.parameters.ParameterService;
-import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
 import org.onap.policy.distribution.reception.statistics.DistributionStatisticsManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
      *
      * @throws IOException if it occurs
      * @throws SecurityException if it occurs
-     * @throws NoSuchFieldException if it occurs
-     * @throws IllegalAccessException if it occurs
      * @throws IllegalArgumentException if it occurs
      */
     @Before
-    public final void init() throws IOException, NoSuchFieldException, SecurityException, IllegalArgumentException,
-            IllegalAccessException {
+    public final void init() throws IOException, SecurityException, IllegalArgumentException {
         DistributionStatisticsManager.resetAllStatistics();
 
         final Gson gson = new GsonBuilder().create();
     }
 
     @Test
-    public final void testInit() throws IOException, InterruptedException {
+    public final void testInit() throws IOException {
         final FileSystemReceptionHandler sypHandler = Mockito.spy(fileSystemHandler);
         Mockito.doNothing().when(sypHandler).initFileWatcher(Mockito.isA(String.class),
                 Mockito.anyInt());
     }
 
     @Test
-    public void testMain() throws IOException, PolicyDecodingException {
+    public void testMain() throws IOException {
         final Object lock = new Object();
-        final String watchPath = tempFolder.getRoot().getAbsolutePath().toString();
+        final String watchPath = tempFolder.getRoot().getAbsolutePath();
 
         class Processed {
             public boolean processed = false;
         final Processed cond = new Processed();
 
         final FileSystemReceptionHandler sypHandler = Mockito.spy(fileSystemHandler);
-        Mockito.doAnswer(new Answer<Object>() {
-            @Override
-            public Object answer(final InvocationOnMock invocation) {
-                synchronized (lock) {
-                    cond.processed = true;
-                    lock.notifyAll();
-                }
-                return null;
+        Mockito.doAnswer((Answer<Object>) invocation -> {
+            synchronized (lock) {
+                cond.processed = true;
+                lock.notifyAll();
             }
+            return null;
         }).when(sypHandler).createPolicyInputAndCallHandler(Mockito.isA(String.class));
 
         final Thread th = new Thread(() -> {
 
  *  Copyright (C) 2018 Ericsson. All rights reserved.
  *  Modifications Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
  *  Modifications Copyright (C) 2021 Bell Canada. All rights reserved.
+ *  Modifications Copyright (C) 2022 Nordix Foundation.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.policy.distribution.reception.handling.sdc;
 
-import java.util.Arrays;
 import java.util.Collection;
+import java.util.List;
 import org.onap.policy.distribution.model.Csar;
 import org.onap.policy.distribution.model.PolicyInput;
 import org.onap.policy.distribution.reception.decoding.PolicyDecoder;
-import org.onap.policy.distribution.reception.decoding.PolicyDecodingException;
 
 /**
  * Class to create a dummy decoder for test cases.
      * {@inheritDoc}.
      */
     @Override
-    public Collection<DummyPolicy> decode(final Csar input) throws PolicyDecodingException {
+    public Collection<DummyPolicy> decode(final Csar input) {
         final DummyPolicy dummyPolicy = new DummyPolicy(input.getCsarFilePath());
         decodedPolicy = dummyPolicy;
-        return Arrays.asList(dummyPolicy);
+        return List.of(dummyPolicy);
     }
 
     /**
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Intel. All rights reserved.
- *  Copyright (C) 2019 Nordix Foundation.
+ *  Copyright (C) 2019, 2022 Nordix Foundation.
  *  Modifications Copyright (C) 2020 Nordix Foundation
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
 
 import static org.assertj.core.api.Assertions.assertThatCode;
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Matchers.any;
 
 import java.io.IOException;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 import org.junit.After;
 import org.junit.Before;
     /**
      * Setup for the test cases.
      *
-     * @throws IOException if it occurs
-     * @throws SecurityException if it occurs
-     * @throws NoSuchFieldException if it occurs
-     * @throws IllegalAccessException if it occurs
+     * @throws IOException              if it occurs
+     * @throws SecurityException        if it occurs
      * @throws IllegalArgumentException if it occurs
      */
     @Before
-    public final void init() throws IOException, NoSuchFieldException, SecurityException, IllegalArgumentException,
-            IllegalAccessException {
+    public final void init() throws IOException, SecurityException, IllegalArgumentException {
         DistributionStatisticsManager.resetAllStatistics();
         final Gson gson = new GsonBuilder().create();
         pssdConfigParameters = gson.fromJson(new FileReader("src/test/resources/handling-sdc.json"),
-                SdcReceptionHandlerConfigurationParameterGroup.class);
+            SdcReceptionHandlerConfigurationParameterGroup.class);
         ParameterService.register(pssdConfigParameters);
         final SdcReceptionHandler sdcHandler = new SdcReceptionHandler();
         sypHandler = Mockito.spy(sdcHandler);
         Mockito.when(distributionClient.sendDeploymentStatus(any())).thenReturn(successfulClientInitResult);
         Mockito.when(distributionClient.sendDeploymentStatus(any(), any())).thenReturn(successfulClientInitResult);
         Mockito.when(distributionClient.download(any())).thenReturn(successfulClientDownloadResult);
-        Mockito.when(notificationData.getServiceArtifacts()).thenReturn(Arrays.asList(artifactInfo));
+        Mockito.when(notificationData.getServiceArtifacts()).thenReturn(List.of(artifactInfo));
         Mockito.when(artifactInfo.getArtifactName()).thenReturn(DUMMY_SERVICE_CSAR);
         Mockito.when(successfulClientDownloadResult.getArtifactPayload()).thenReturn(new byte[1]);
         Mockito.when(successfulClientInitResult.getDistributionActionResult())
-                .thenReturn(DistributionActionResultEnum.SUCCESS);
+            .thenReturn(DistributionActionResultEnum.SUCCESS);
         Mockito.when(successfulClientDownloadResult.getDistributionActionResult())
-                .thenReturn(DistributionActionResultEnum.SUCCESS);
+            .thenReturn(DistributionActionResultEnum.SUCCESS);
         Mockito.when(failureClientInitResult.getDistributionActionResult())
-                .thenReturn(DistributionActionResultEnum.FAIL);
+            .thenReturn(DistributionActionResultEnum.FAIL);
 
     }
 
 
     @Test
     public final void testInitializeSdcClient() {
-        assertThatCode(() ->  sypHandler.initializeReception(pssdConfigParameters.getName()))
+        assertThatCode(() -> sypHandler.initializeReception(pssdConfigParameters.getName()))
             .doesNotThrowAnyException();
     }
 
     public final void testInitializeSdcClient_Failure() {
 
         Mockito.when(successfulClientInitResult.getDistributionActionResult())
-                .thenReturn(DistributionActionResultEnum.FAIL).thenReturn(DistributionActionResultEnum.SUCCESS);
+            .thenReturn(DistributionActionResultEnum.FAIL).thenReturn(DistributionActionResultEnum.SUCCESS);
         assertThatCode(() -> sypHandler.initializeReception(pssdConfigParameters.getName()))
             .doesNotThrowAnyException();
     }
     public final void testStartSdcClient_Failure() {
         assertThatCode(() -> {
             Mockito.when(distributionClient.start()).thenReturn(failureClientInitResult)
-            .thenReturn(successfulClientInitResult);
+                .thenReturn(successfulClientInitResult);
             sypHandler.initializeReception(pssdConfigParameters.getName());
         }).doesNotThrowAnyException();
     }
     }
 
     @Test
-    public final void testStopSdcClient_Failure() throws PluginInitializationException {
+    public final void testStopSdcClient_Failure() {
         sypHandler.initializeReception(pssdConfigParameters.getName());
         Mockito.when(distributionClient.stop()).thenReturn(failureClientInitResult)
-                .thenReturn(successfulClientInitResult);
+            .thenReturn(successfulClientInitResult);
         assertThatCode(() -> sypHandler.destroy()).doesNotThrowAnyException();
     }
 
 
     @Test
     public void testNotificationCallBack() throws NoSuchFieldException, SecurityException, IllegalArgumentException,
-            IllegalAccessException, PluginInitializationException {
+        IllegalAccessException, PluginInitializationException {
 
         final DummyDecoder policyDecoder = new DummyDecoder();
         final Collection<PolicyDecoder<Csar, DummyPolicy>> policyDecoders = new ArrayList<>();
 
     @Test
     public void testDownloadArtifactFailure() throws NoSuchFieldException, SecurityException, IllegalArgumentException,
-            IllegalAccessException, PluginInitializationException {
+        IllegalAccessException, PluginInitializationException {
 
         Mockito.when(successfulClientDownloadResult.getDistributionActionResult())
-                .thenReturn(DistributionActionResultEnum.FAIL);
+            .thenReturn(DistributionActionResultEnum.FAIL);
 
         final DummyDecoder policyDecoder = new DummyDecoder();
         final Collection<PolicyDecoder<Csar, DummyPolicy>> policyDecoders = new ArrayList<>();
         sypHandler.initializeReception(pssdConfigParameters.getName());
         sypHandler.activateCallback(notificationData);
 
-        assertEquals(null, policyDecoder.getDecodedPolicy());
+        assertNull(policyDecoder.getDecodedPolicy());
         assertEquals(0, policyForwarder.getNumberOfPoliciesReceived());
         assertEquals(1, DistributionStatisticsManager.getTotalDistributionCount());
         assertEquals(0, DistributionStatisticsManager.getDistributionSuccessCount());
 
     @Test
     public void testSendDistributionStatusFailure() throws NoSuchFieldException, SecurityException,
-            IllegalArgumentException, IllegalAccessException, PluginInitializationException {
+        IllegalArgumentException, IllegalAccessException, PluginInitializationException {
 
         Mockito.when(successfulClientDownloadResult.getDistributionActionResult())
-                .thenReturn(DistributionActionResultEnum.FAIL);
+            .thenReturn(DistributionActionResultEnum.FAIL);
         Mockito.when(distributionClient.sendDownloadStatus(any(), any())).thenReturn(failureClientInitResult);
         Mockito.when(distributionClient.sendDeploymentStatus(any(), any())).thenReturn(failureClientInitResult);
         Mockito.when(distributionClient.sendComponentDoneStatus(any(), any())).thenReturn(failureClientInitResult);
         sypHandler.initializeReception(pssdConfigParameters.getName());
         sypHandler.activateCallback(notificationData);
 
-        assertEquals(null, policyDecoder.getDecodedPolicy());
+        assertNull(policyDecoder.getDecodedPolicy());
         assertEquals(0, policyForwarder.getNumberOfPoliciesReceived());
     }
 
     private void setUpPlugins(final AbstractReceptionHandler receptionHandler,
-            final Collection<PolicyDecoder<Csar, DummyPolicy>> decoders, final Collection<PolicyForwarder> forwarders)
-            throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException,
-            PluginInitializationException {
+                              final Collection<PolicyDecoder<Csar, DummyPolicy>> decoders,
+                              final Collection<PolicyForwarder> forwarders)
+        throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException,
+        PluginInitializationException {
         final PluginHandlerParameters pluginParameters = getPluginHandlerParameters();
         pluginParameters.setName("DummyDistributionGroup");
         ParameterService.register(pluginParameters);
     private PluginHandlerParameters getPluginHandlerParameters() {
         final Map<String, PolicyDecoderParameters> policyDecoders = getPolicyDecoders();
         final Map<String, PolicyForwarderParameters> policyForwarders = getPolicyForwarders();
-        final PluginHandlerParameters pluginHandlerParameters =
-                new PluginHandlerParameters(policyDecoders, policyForwarders);
-        return pluginHandlerParameters;
+        return new PluginHandlerParameters(policyDecoders, policyForwarders);
     }
 
     private Map<String, PolicyDecoderParameters> getPolicyDecoders() {
-        final Map<String, PolicyDecoderParameters> policyDecoders = new HashMap<String, PolicyDecoderParameters>();
+        final Map<String, PolicyDecoderParameters> policyDecoders = new HashMap<>();
         final PolicyDecoderParameters pDParameters = new PolicyDecoderParameters("DummyDecoder",
-                "org.onap.policy.distribution.reception.handling.sdc.DummyDecoder", "DummyDecoderConfiguration");
+            "org.onap.policy.distribution.reception.handling.sdc.DummyDecoder", "DummyDecoderConfiguration");
         policyDecoders.put("DummyDecoderKey", pDParameters);
         return policyDecoders;
     }
 
     private Map<String, PolicyForwarderParameters> getPolicyForwarders() {
-        final Map<String, PolicyForwarderParameters> policyForwarders =
-                new HashMap<String, PolicyForwarderParameters>();
+        final Map<String, PolicyForwarderParameters> policyForwarders = new HashMap<>();
         final PolicyForwarderParameters pFParameters = new PolicyForwarderParameters("DummyForwarder",
-                "org.onap.policy.distribution.reception.handling.sdc.DummyPolicyForwarder", "DummyConfiguration");
+            "org.onap.policy.distribution.reception.handling.sdc.DummyPolicyForwarder", "DummyConfiguration");
         policyForwarders.put("DummyForwarderKey", pFParameters);
         return policyForwarders;
     }
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2022 Nordix Foundation.
- * ================================================================================
- * 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.distribution.reception.util;
-
-import org.assertj.core.api.Assertions;
-import org.junit.Test;
-
-/**
- * Class for testing {@link ReceptionUtil}.
- */
-
-public class ReceptionUtilTest {
-
-    @Test
-    public void testValidateZipEntry_InvalidSize() {
-        long invalidFileSize = 512L * 2048;
-
-        Assertions.assertThatThrownBy(() ->
-                ReceptionUtil.validateZipEntry("entryName", "csarPath", invalidFileSize))
-            .hasMessage("Zip entry for entryName is too large " + invalidFileSize);
-    }
-}
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
- *  Copyright (C) 2019 Nordix Foundation.
+ *  Modifications Copyright (C) 2019, 2022 Nordix Foundation.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
 @Getter
 public class ReceptionHandlerParameters implements ParameterGroup {
     private @Setter String name;
-    private String receptionHandlerType;
-    private @ClassName String receptionHandlerClassName;
-    private String receptionHandlerConfigurationName;
-    private @Valid PluginHandlerParameters pluginHandlerParameters;
+    private final String receptionHandlerType;
+    private final @ClassName String receptionHandlerClassName;
+    private final String receptionHandlerConfigurationName;
+    private final @Valid PluginHandlerParameters pluginHandlerParameters;
 
     /**
      * Constructor for instantiating ReceptionHandlerParameters.
 
   ONAP Policy Distribution Stability
   ================================================================================
   Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+  Modifications Copyright (C) 2022. Nordix Foundation.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
         <fileSet>
             <directory>${project.basedir}/src/main/resources/testplans/</directory>
             <outputDirectory>tests/testplans</outputDirectory>
-            <!-- <includes>
-                <include>*.jmx</include>
-                <include>*.sh</include>
-            </includes> -->
             <lineEnding>unix</lineEnding>
             <fileMode>0644</fileMode>
             <filtered>true</filtered>
 
   ONAP Policy Distribution Stability
   ================================================================================
   Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+  Modifications Copyright (C) 2022. Nordix Foundation.
   ================================================================================
   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
         <fileSet>
             <directory>${project.basedir}/src/main/resources/testplans/</directory>
             <outputDirectory>tests/testplans</outputDirectory>
-            <!-- <includes>
-                <include>*.jmx</include>
-                <include>*.sh</include>
-            </includes> -->
             <lineEnding>unix</lineEnding>
             <fileMode>0644</fileMode>
             <filtered>true</filtered>