Use lombok for getter, setter, constructor & builder functions.
Remove unused classes.
Remove duplicate classes for testing exceptions.
Issue-ID: POLICY-3393
Change-Id: I8a565bc6a5699b8716982f84e03b6a11d08ce65b
Signed-off-by: Ram Krishna Verma <ram_krishna.verma@bell.ca>
             <artifactId>common-parameters</artifactId>
             <version>${policy.common.version}</version>
         </dependency>
+        <dependency>
+            <groupId>org.onap.policy.common</groupId>
+            <artifactId>utils-test</artifactId>
+            <version>${policy.common.version}</version>
+        </dependency>
         <dependency>
             <groupId>org.onap.policy.models</groupId>
             <artifactId>policy-models-tosca</artifactId>
 
  *  Copyright (C) 2018 Ericsson. All rights reserved.
  *  Copyright (C) 2019 Nordix Foundation.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.forwarding.parameters;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
 import org.onap.policy.common.parameters.BeanValidationResult;
 import org.onap.policy.common.parameters.BeanValidator;
  */
 @Getter
 @NotBlank
+@AllArgsConstructor
 public class PolicyForwarderParameters implements ParameterGroup {
 
     private @NotNull String forwarderType;
     private @NotNull @ClassName String forwarderClassName;
     private String forwarderConfigurationName;
 
-    /**
-     * Constructor for instantiating PolicyForwarderParameters.
-     *
-     * @param forwarderType the policy forwarder type
-     * @param forwarderClassName the policy forwarder class name
-     * @param forwarderConfigurationName the name of the configuration for the policy forwarder
-     */
-    public PolicyForwarderParameters(final String forwarderType, final String forwarderClassName,
-            final String forwarderConfigurationName) {
-        this.forwarderType = forwarderType;
-        this.forwarderClassName = forwarderClassName;
-        this.forwarderConfigurationName = forwarderConfigurationName;
-    }
-
     /**
      * {@inheritDoc}.
      */
 
+++ /dev/null
-/*-
- * ============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.distribution.forwarding;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-public class PolicyDecodingExceptionTest {
-
-    @Test
-    public void testPolicyDecodingExceptionString() {
-        final PolicyForwardingException policyDecodingException = new PolicyForwardingException("error message");
-        assertEquals("error message", policyDecodingException.getMessage());
-    }
-
-    @Test
-    public void testPolicyDecodingExceptionStringThrowable() {
-        final Exception cause = new IllegalArgumentException();
-        final PolicyForwardingException policyDecodingException = new PolicyForwardingException("error message", cause);
-        assertEquals("error message", policyDecodingException.getMessage());
-        assertEquals(cause, policyDecodingException.getCause());
-    }
-
-}
 
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. All rights reserved.
+ *  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.
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.distribution.reception.handling.sdc.exceptions;
+package org.onap.policy.distribution.forwarding;
 
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
 import org.junit.Test;
+import org.onap.policy.common.utils.test.ExceptionsTester;
 
-public class PssdParametersExceptionTest {
+public class TestExceptions {
 
     @Test
     public void test() {
-        assertNotNull(new PssdParametersException("Message"));
-        assertNotNull(new PssdParametersException("Message", new IOException()));
+        new ExceptionsTester().test(PolicyForwardingException.class);
     }
 }
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.model;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
 /**
  * Represents a CSAR file that a {@link Policy} can be decoded from.
  */
+@Getter
+@AllArgsConstructor
 public class Csar implements PolicyInput {
 
     private String csarFilePath;
-
-    public Csar(final String csarFilePath) {
-        this.csarFilePath = csarFilePath;
-    }
-
-    /**
-     * Get the path to the CSAR file.
-     *
-     * @return the path of the CSAR file
-     */
-    public String getCsarPath() {
-        return csarFilePath;
-    }
-
 }
 
+++ /dev/null
-/*-
- * ============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.distribution.model;
-
-import java.util.Date;
-import lombok.EqualsAndHashCode;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-import org.apache.commons.lang3.NotImplementedException;
-import org.onap.policy.models.tosca.authorative.concepts.ToscaEntity;
-
-/**
- * An optimization policy.
- */
-@Getter
-@Setter
-@ToString
-@EqualsAndHashCode(callSuper = true)
-public class OptimizationPolicy extends ToscaEntity {
-
-    private static final String OPTIMIZATION = "Optimization";
-    private String policyName;
-    private String policyDescription;
-    private String onapName;
-    private String configBody;
-    private String configBodyType;
-    private Date timetolive;
-    private String guard;
-    private String riskLevel;
-    private String riskType;
-
-    @Override
-    public String getName() {
-        return policyName;
-    }
-
-    @Override
-    public void setName(final String name) {
-        this.policyName = name;
-    }
-
-    @Override
-    public String getVersion() {
-        // Utilizing this method to return the policy type instead of version for the old model.
-        return OPTIMIZATION;
-    }
-
-    @Override
-    public void setVersion(final String version) {
-        throw new NotImplementedException("Not supported");
-    }
-}
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.model;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
 /**
  * This class represents a policy which can be decoded by a relevant {@link PolicyDecoder}.
  *
  * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
  */
+@Getter
+@AllArgsConstructor
 public class PolicyAsString implements Policy {
     private String policyName;
     private String policyType;
     private String policy;
-
-    /**
-     * Constructor for creating instance of {@link PolicyAsString}.
-     *
-     * @param policyName the policy file name
-     * @param policyType the policy type
-     * @param policy the policy
-     */
-    public PolicyAsString(final String policyName, final String policyType, final String policy) {
-        this.policyName = policyName;
-        this.policyType = policyType;
-        this.policy = policy;
-    }
-
-    /**
-     * Returns the policy of this {@link PolicyAsString} instance.
-     *
-     * @return the policy
-     */
-    public String getPolicy() {
-        return policy;
-    }
-
-    /**
-     * {@inheritDoc}.
-     */
-    @Override
-    public String getPolicyName() {
-        return policyName;
-    }
-
-    /**
-     * {@inheritDoc}.
-     */
-    @Override
-    public String getPolicyType() {
-        return policyType;
-    }
 }
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  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.
  * 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.model;
 
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
 /**
  * Represents a TOSCA file that a {@link Policy} can be decoded from.
  */
+@Getter
+@AllArgsConstructor
 public class Tosca implements PolicyInput {
 
     private String toscaFilePath;
-
-    public Tosca(String toscaFilePath) {
-        this.toscaFilePath = toscaFilePath;
-    }
-
-    /**
-     * Get the path to the TOSCA file.
-     * 
-     * @return the path of the TOSCA file
-     */
-    String getToscaFilePath() {
-        return toscaFilePath;
-    }
-
 }
 
  *  Copyright (C) 2018 Ericsson. All rights reserved.
  *  Copyright (C) 2019 Nordix Foundation.
  *  Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ *  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.
     public Collection<ToscaEntity> decode(final Csar csar) throws PolicyDecodingException {
         final Collection<ToscaEntity> policyList = new ArrayList<>();
 
-        try (var zipFile = new ZipFile(csar.getCsarPath())) {
+        try (var zipFile = new ZipFile(csar.getCsarFilePath())) {
             final Enumeration<? extends ZipEntry> entries = zipFile.entries();
             while (entries.hasMoreElements()) {
                 //
                 // isZipEntryValid ensures the file being read exists in the archive
                 //
                 final ZipEntry entry = entries.nextElement(); // NOSONAR
-                if (isZipEntryValid(entry.getName(), csar.getCsarPath(), entry.getSize())) {
+                if (isZipEntryValid(entry.getName(), csar.getCsarFilePath(), entry.getSize())) {
                     final ToscaServiceTemplate policy =
                             coder.decode(zipFile.getInputStream(entry), ToscaServiceTemplate.class);
                     policyList.add(policy);
 
 /*-
  * ============LICENSE_START=======================================================
  *  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.
 package org.onap.policy.distribution.reception.handling.file;
 
 import java.io.IOException;
+import lombok.AllArgsConstructor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
  *
  * @author Ram Krishna Verma (ram.krishna.verma@est.tech)
  */
+@AllArgsConstructor
 public class FileClientHandler implements Runnable {
 
     private static final Logger LOGGER = LoggerFactory.getLogger(FileClientHandler.class);
     private String watchPath;
     private int maxThread;
 
-    /**
-     * Constructs an instance of {@link FileClientHandler} class.
-     *
-     * @param fileReceptionHandler the fileReceptionHandler
-     */
-    public FileClientHandler(final FileSystemReceptionHandler fileReceptionHandler, final String watchPath,
-            final int maxThread) {
-        this.fileReceptionHandler = fileReceptionHandler;
-        this.watchPath = watchPath;
-        this.maxThread = maxThread;
-    }
-
     /**
      * {@inheritDoc}.
      */
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.reception.handling.sdc;
 
+import lombok.Builder;
 import org.onap.sdc.api.consumer.IComponentDoneStatusMessage;
 import org.onap.sdc.utils.DistributionStatusEnum;
 
  *
  * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
  */
+@Builder
 public class ComponentDoneStatusMessage implements IComponentDoneStatusMessage {
 
     private String consumerId;
     private DistributionStatusEnum distributionStatus;
     private long timestamp;
 
-    /**
-     * Constructor for instantiating {@link ComponentDoneStatusMessage} class.
-     *
-     * @param messageBuilder the message builder
-     */
-    public ComponentDoneStatusMessage(final ComponentDoneStatusMessageBuilder messageBuilder) {
-        this.consumerId = messageBuilder.getConsumerId();
-        this.distributionId = messageBuilder.getDistributionId();
-        this.distributionStatus = messageBuilder.getDistributionStatus();
-        this.timestamp = messageBuilder.getTimestamp();
-    }
-
     @Override
     public DistributionStatusEnum getStatus() {
         return distributionStatus;
 
+++ /dev/null
-/*-
- * ============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.distribution.reception.handling.sdc;
-
-import org.onap.sdc.utils.DistributionStatusEnum;
-
-/**
- * This class builds an instance of {@link ComponentDoneStatusMessage} class.
- *
- * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
- */
-public class ComponentDoneStatusMessageBuilder {
-
-    private String consumerId;
-    private String distributionId;
-    private DistributionStatusEnum distributionStatus;
-    private long timestamp;
-
-    /**
-     * Returns consumer id of this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @return the consumerId
-     */
-    public String getConsumerId() {
-        return consumerId;
-    }
-
-    /**
-     * Returns distribution id of this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @return the distributionId
-     */
-    public String getDistributionId() {
-        return distributionId;
-    }
-
-    /**
-     * Returns distribution status of this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @return the distributionStatus
-     */
-    public DistributionStatusEnum getDistributionStatus() {
-        return distributionStatus;
-    }
-
-    /**
-     * Returns time of this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @return the timestamp
-     */
-    public long getTimestamp() {
-        return timestamp;
-    }
-
-    /**
-     * Set consumer id url to this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @param consumerId the consumerId to set
-     */
-    public ComponentDoneStatusMessageBuilder setConsumerId(final String consumerId) {
-        this.consumerId = consumerId;
-        return this;
-    }
-
-    /**
-     * Set distribution id to this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @param distributionId the distributionId to set
-     */
-    public ComponentDoneStatusMessageBuilder setDistributionId(final String distributionId) {
-        this.distributionId = distributionId;
-        return this;
-    }
-
-    /**
-     * Set distribution status to this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @param distributionStatus the distributionStatus to set
-     */
-    public ComponentDoneStatusMessageBuilder setDistributionStatus(final DistributionStatusEnum distributionStatus) {
-        this.distributionStatus = distributionStatus;
-        return this;
-    }
-
-    /**
-     * Set time to this {@link ComponentDoneStatusMessageBuilder} instance.
-     *
-     * @param timestamp the timestamp to set
-     */
-    public ComponentDoneStatusMessageBuilder setTimestamp(final long timestamp) {
-        this.timestamp = timestamp;
-        return this;
-    }
-}
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Ericsson. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.reception.handling.sdc;
 
+import lombok.Builder;
 import org.onap.sdc.api.consumer.IDistributionStatusMessage;
 import org.onap.sdc.utils.DistributionStatusEnum;
 
  *
  * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
  */
+@Builder
 public class DistributionStatusMessage implements IDistributionStatusMessage {
 
     private String artifactUrl;
     private DistributionStatusEnum distributionStatus;
     private long timestamp;
 
-    /**
-     * Constructor for instantiating {@link DistributionStatusMessage} class.
-     *
-     * @param messageBuilder the message builder
-     */
-    public DistributionStatusMessage(final DistributionStatusMessageBuilder messageBuilder) {
-        this.artifactUrl = messageBuilder.getArtifactUrl();
-        this.consumerId = messageBuilder.getConsumerId();
-        this.distributionId = messageBuilder.getDistributionId();
-        this.distributionStatus = messageBuilder.getDistributionStatus();
-        this.timestamp = messageBuilder.getTimestamp();
-    }
-
     @Override
     public String getArtifactURL() {
         return artifactUrl;
 
+++ /dev/null
-/*-
- * ============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.distribution.reception.handling.sdc;
-
-import org.onap.sdc.utils.DistributionStatusEnum;
-
-/**
- * This class builds an instance of {@link DistributionStatusMessage} class.
- *
- * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
- */
-public class DistributionStatusMessageBuilder {
-
-    private String artifactUrl;
-    private String consumerId;
-    private String distributionId;
-    private DistributionStatusEnum distributionStatus;
-    private long timestamp;
-
-    /**
-     * Returns artifact url of this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @return the artifactUrl
-     */
-    public String getArtifactUrl() {
-        return artifactUrl;
-    }
-
-    /**
-     * Returns consumer id of this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @return the consumerId
-     */
-    public String getConsumerId() {
-        return consumerId;
-    }
-
-    /**
-     * Returns distribution id of this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @return the distributionId
-     */
-    public String getDistributionId() {
-        return distributionId;
-    }
-
-    /**
-     * Returns distribution status of this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @return the distributionStatus
-     */
-    public DistributionStatusEnum getDistributionStatus() {
-        return distributionStatus;
-    }
-
-    /**
-     * Returns time of this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @return the timestamp
-     */
-    public long getTimestamp() {
-        return timestamp;
-    }
-
-    /**
-     * Set artifact url to this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @param artifactUrl the artifactUrl to set
-     */
-    public DistributionStatusMessageBuilder setArtifactUrl(final String artifactUrl) {
-        this.artifactUrl = artifactUrl;
-        return this;
-    }
-
-    /**
-     * Set consumer id url to this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @param consumerId the consumerId to set
-     */
-    public DistributionStatusMessageBuilder setConsumerId(final String consumerId) {
-        this.consumerId = consumerId;
-        return this;
-    }
-
-    /**
-     * Set distribution id to this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @param distributionId the distributionId to set
-     */
-    public DistributionStatusMessageBuilder setDistributionId(final String distributionId) {
-        this.distributionId = distributionId;
-        return this;
-    }
-
-    /**
-     * Set distribution status to this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @param distributionStatus the distributionStatus to set
-     */
-    public DistributionStatusMessageBuilder setDistributionStatus(final DistributionStatusEnum distributionStatus) {
-        this.distributionStatus = distributionStatus;
-        return this;
-    }
-
-    /**
-     * Set time to this {@link DistributionStatusMessageBuilder} instance.
-     *
-     * @param timestamp the timestamp to set
-     */
-    public DistributionStatusMessageBuilder setTimestamp(final long timestamp) {
-        this.timestamp = timestamp;
-        return this;
-    }
-}
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Intel. All rights reserved.
+ *  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.
 package org.onap.policy.distribution.reception.handling.sdc;
 
 import java.util.List;
+import lombok.AllArgsConstructor;
 import org.onap.sdc.api.consumer.IConfiguration;
 
 /**
  * This class represents the configurations needed for SDC Client.
  *
  */
+@AllArgsConstructor
 public class SdcConfiguration implements IConfiguration {
 
-    private SdcReceptionHandlerConfigurationParameterGroup configParameters = null;
-
-    /**
-     * Constructor for instantiating {@link SdcConfiguration}.
-     *
-     * @param configParameters the SDC Client configuration parameters
-     */
-    public SdcConfiguration(final SdcReceptionHandlerConfigurationParameterGroup configParameters) {
-        this.configParameters = configParameters;
-    }
+    private SdcReceptionHandlerConfigurationParameterGroup configParameters;
 
     @Override
     public String getAsdcAddress() {
 
  *  Copyright (C) 2018 Ericsson. All rights reserved.
  *  Copyright (C) 2019 Nordix Foundation.
  *  Modifications Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved.
+ *  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.
 import org.onap.sdc.api.notification.INotificationData;
 import org.onap.sdc.api.results.IDistributionClientDownloadResult;
 import org.onap.sdc.api.results.IDistributionClientResult;
+import org.onap.sdc.impl.DistributionClientFactory;
 import org.onap.sdc.impl.DistributionClientImpl;
 import org.onap.sdc.utils.DistributionActionResultEnum;
 import org.onap.sdc.utils.DistributionStatusEnum;
             final String distributionId, final DistributionStatusEnum status, final String errorReason) {
 
         IDistributionClientResult clientResult;
-        final DistributionStatusMessageBuilder messageBuilder = new DistributionStatusMessageBuilder()
-                .setArtifactUrl(artifactUrl).setConsumerId(sdcConfig.getConsumerID()).setDistributionId(distributionId)
-                .setDistributionStatus(status).setTimestamp(System.currentTimeMillis());
-        final IDistributionStatusMessage message = new DistributionStatusMessage(messageBuilder);
+        final IDistributionStatusMessage message = DistributionStatusMessage.builder().artifactUrl(artifactUrl)
+                        .consumerId(sdcConfig.getConsumerID()).distributionId(distributionId).distributionStatus(status)
+                        .timestamp(System.currentTimeMillis()).build();
         if (DistributionStatusType.DOWNLOAD.equals(statusType)) {
             if (errorReason != null) {
                 clientResult = distributionClient.sendDownloadStatus(message, errorReason);
     private void sendComponentDoneStatus(final String distributionId, final DistributionStatusEnum status,
             final String errorReason) {
         IDistributionClientResult clientResult;
-        final ComponentDoneStatusMessageBuilder messageBuilder = new ComponentDoneStatusMessageBuilder()
-                .setConsumerId(sdcConfig.getConsumerID()).setDistributionId(distributionId)
-                .setDistributionStatus(status).setTimestamp(System.currentTimeMillis());
-        final IComponentDoneStatusMessage message = new ComponentDoneStatusMessage(messageBuilder);
+        final IComponentDoneStatusMessage message = ComponentDoneStatusMessage.builder()
+                        .consumerId(sdcConfig.getConsumerID()).distributionId(distributionId).distributionStatus(status)
+                        .timestamp(System.currentTimeMillis()).build();
         if (errorReason == null) {
             clientResult = distributionClient.sendComponentDoneStatus(message);
         } else {
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. 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.distribution.reception.handling.sdc.exceptions;
-
-/**
- * Exception during artifact installation.
- */
-public class ArtifactInstallerException extends Exception {
-
-    /**
-     * serialization id.
-     */
-    private static final long serialVersionUID = -8507246953751956974L;
-
-    /**
-     * Constructor for creating ArtifactInstallerException using message.
-     *
-     * @param message The message to dump
-     */
-    public ArtifactInstallerException(final String message) {
-        super(message);
-
-    }
-
-    /**
-     * Constructor for creating ArtifactInstallerException using message and exception.
-     *
-     * @param message The message to dump
-     * @param ex the exception that caused this exception to be thrown
-     */
-    public ArtifactInstallerException(final String message, final Exception ex) {
-        super(message, ex);
-
-    }
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. 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.distribution.reception.handling.sdc.exceptions;
-
-/**
- * Exception of the Pssd controller.
- */
-public class PssdControllerException extends Exception {
-
-    /**
-     * serialization id.
-     */
-    private static final long serialVersionUID = -8507246953751956974L;
-
-    /**
-     * Constructor for creating PssdControllerException using message.
-     *
-     * @param message The message to dump
-     */
-    public PssdControllerException(final String message) {
-        super(message);
-
-    }
-
-    /**
-     * Constructor for creating PssdControllerException using message and exception.
-     *
-     * @param message The message to dump
-     * @param ex the exception that caused this exception to be thrown
-     */
-    public PssdControllerException(final String message, final Exception ex) {
-        super(message, ex);
-
-    }
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. 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.distribution.reception.handling.sdc.exceptions;
-
-/**
- * Exception of the Pssd controller.
- */
-public class PssdParametersException extends Exception {
-
-    /**
-     * serialization id.
-     */
-    private static final long serialVersionUID = -8507246953751956974L;
-
-    /**
-     * Constructor for creating PssdParametersException using message.
-     *
-     * @param message The message to dump
-     */
-    public PssdParametersException(final String message) {
-        super(message);
-
-    }
-
-    /**
-     * Constructor for creating PssdParametersException using message and exception.
-     *
-     * @param message The message to dump
-     * @param ex the exception that caused this exception to be thrown
-     */
-    public PssdParametersException(final String message, final Exception ex) {
-        super(message, ex);
-
-    }
-}
 
  * ============LICENSE_START=======================================================
  *  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.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
      */
     @Override
     public Collection<DummyPolicy> decode(final Csar input) throws PolicyDecodingException {
-        final DummyPolicy dummyPolicy = new DummyPolicy(input.getCsarPath());
+        final DummyPolicy dummyPolicy = new DummyPolicy(input.getCsarFilePath());
         decodedPolicy = dummyPolicy;
         return Arrays.asList(dummyPolicy);
     }
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Intel. All rights reserved.
+ *  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.
 
 public class TestComponentDoneStatusMessage {
 
+    private static final String CONSUMER_ID = "dummyId";
+    private static final String DISTRIBUTION_ID = "dummyDistribution";
+
     @Test
     public void testComponentDoneStatusMessage_Success() {
-        final String consumerId = "dummyId";
-        final String distributionId = "dummyDistribution";
         final long timestamp = System.currentTimeMillis();
-        final ComponentDoneStatusMessageBuilder messageBuilder =
-                new ComponentDoneStatusMessageBuilder().setConsumerId(consumerId).setDistributionId(distributionId)
-                        .setDistributionStatus(DistributionStatusEnum.COMPONENT_DONE_OK).setTimestamp(timestamp);
-        final ComponentDoneStatusMessage message = new ComponentDoneStatusMessage(messageBuilder);
+        final ComponentDoneStatusMessage message = ComponentDoneStatusMessage.builder().consumerId(CONSUMER_ID)
+                        .distributionId(DISTRIBUTION_ID).distributionStatus(DistributionStatusEnum.COMPONENT_DONE_OK)
+                        .timestamp(timestamp).build();
         assertEquals("POLICY", message.getComponentName());
-        assertEquals(consumerId, message.getConsumerID());
-        assertEquals(distributionId, message.getDistributionID());
+        assertEquals(CONSUMER_ID, message.getConsumerID());
+        assertEquals(DISTRIBUTION_ID, message.getDistributionID());
         assertEquals(DistributionStatusEnum.COMPONENT_DONE_OK, message.getStatus());
         assertEquals(timestamp, message.getTimestamp());
     }
 
     @Test
     public void testComponentDoneStatusMessage_Failure() {
-        final String consumerId = "dummyId";
-        final String distributionId = "dummyDistribution";
         final long timestamp = System.currentTimeMillis();
-        final ComponentDoneStatusMessageBuilder messageBuilder =
-                new ComponentDoneStatusMessageBuilder().setConsumerId(consumerId).setDistributionId(distributionId)
-                        .setDistributionStatus(DistributionStatusEnum.COMPONENT_DONE_ERROR).setTimestamp(timestamp);
-        final ComponentDoneStatusMessage message = new ComponentDoneStatusMessage(messageBuilder);
+        final ComponentDoneStatusMessage message = ComponentDoneStatusMessage.builder().consumerId(CONSUMER_ID)
+                        .distributionId(DISTRIBUTION_ID).distributionStatus(DistributionStatusEnum.COMPONENT_DONE_ERROR)
+                        .timestamp(timestamp).build();
         assertEquals("POLICY", message.getComponentName());
-        assertEquals(consumerId, message.getConsumerID());
-        assertEquals(distributionId, message.getDistributionID());
+        assertEquals(CONSUMER_ID, message.getConsumerID());
+        assertEquals(DISTRIBUTION_ID, message.getDistributionID());
         assertEquals(DistributionStatusEnum.COMPONENT_DONE_ERROR, message.getStatus());
         assertEquals(timestamp, message.getTimestamp());
     }
 
 /*-
  * ============LICENSE_START=======================================================
  *  Copyright (C) 2018 Intel. All rights reserved.
+ *  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.
 
 public class TestDistributionStatusMessage {
 
+    private static final String ARTIFACT_URL = "http://dummyurl";
+    private static final String CONSUMER_ID = "dummyId";
+    private static final String DISTRIBUTION_ID = "dummyDistribution";
+
     @Test
     public void testDistributionStatusMessage_Download() {
-        final String artifactUrl = "http://dummyurl";
-        final String consumerId = "dummyId";
-        final String distributionId = "dummyDistribution";
         final long timestamp = System.currentTimeMillis();
 
-        final DistributionStatusMessageBuilder messageBuilder = new DistributionStatusMessageBuilder()
-                .setArtifactUrl(artifactUrl).setConsumerId(consumerId).setDistributionId(distributionId)
-                .setDistributionStatus(DistributionStatusEnum.DOWNLOAD_OK).setTimestamp(timestamp);
-        final DistributionStatusMessage message = new DistributionStatusMessage(messageBuilder);
-        assertEquals(artifactUrl, message.getArtifactURL());
-        assertEquals(consumerId, message.getConsumerID());
-        assertEquals(distributionId, message.getDistributionID());
+        final DistributionStatusMessage message = DistributionStatusMessage.builder().artifactUrl(ARTIFACT_URL)
+                        .consumerId(CONSUMER_ID).distributionId(DISTRIBUTION_ID)
+                        .distributionStatus(DistributionStatusEnum.DOWNLOAD_OK).timestamp(timestamp).build();
+        assertEquals(ARTIFACT_URL, message.getArtifactURL());
+        assertEquals(CONSUMER_ID, message.getConsumerID());
+        assertEquals(DISTRIBUTION_ID, message.getDistributionID());
         assertEquals(DistributionStatusEnum.DOWNLOAD_OK, message.getStatus());
         assertEquals(timestamp, message.getTimestamp());
     }
 
     @Test
     public void testDistributionStatusMessage_Deploy() {
-        final String artifactUrl = "http://dummyurl";
-        final String consumerId = "dummyId";
-        final String distributionId = "dummyDistribution";
         final long timestamp = System.currentTimeMillis();
 
-        final DistributionStatusMessageBuilder messageBuilder = new DistributionStatusMessageBuilder()
-                .setArtifactUrl(artifactUrl).setConsumerId(consumerId).setDistributionId(distributionId)
-                .setDistributionStatus(DistributionStatusEnum.DEPLOY_OK).setTimestamp(timestamp);
-        final DistributionStatusMessage message = new DistributionStatusMessage(messageBuilder);
-        assertEquals(artifactUrl, message.getArtifactURL());
-        assertEquals(consumerId, message.getConsumerID());
-        assertEquals(distributionId, message.getDistributionID());
+        final DistributionStatusMessage message = DistributionStatusMessage.builder().artifactUrl(ARTIFACT_URL)
+                        .consumerId(CONSUMER_ID).distributionId(DISTRIBUTION_ID)
+                        .distributionStatus(DistributionStatusEnum.DEPLOY_OK).timestamp(timestamp).build();
+        assertEquals(ARTIFACT_URL, message.getArtifactURL());
+        assertEquals(CONSUMER_ID, message.getConsumerID());
+        assertEquals(DISTRIBUTION_ID, message.getDistributionID());
         assertEquals(DistributionStatusEnum.DEPLOY_OK, message.getStatus());
         assertEquals(timestamp, message.getTimestamp());
     }
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. 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.distribution.reception.handling.sdc.exceptions;
-
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
-import org.junit.Test;
-
-public class ArtifactDownloadExceptionTest {
-
-    @Test
-    public void test() {
-        assertNotNull(new ArtifactDownloadException("Message"));
-        assertNotNull(new ArtifactDownloadException("Message", new IOException()));
-    }
-}
 
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.reception.handling.sdc.exceptions;
 
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
 import org.junit.Test;
+import org.onap.policy.common.utils.test.ExceptionsTester;
 
-public class PssdControllerExceptionTest {
+public class TestExceptions {
 
     @Test
     public void test() {
-        assertNotNull(new PssdControllerException("Message"));
-        assertNotNull(new PssdControllerException("Message", new IOException()));
+        new ExceptionsTester().test(ArtifactDownloadException.class);
     }
 }
 
  *  Copyright (C) 2018 Ericsson. All rights reserved.
  *  Copyright (C) 2019 Nordix Foundation.
  *  Modifications Copyright (C) 2021 AT&T Intellectual Property. All rights reserved.
+ *  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.
 
 package org.onap.policy.distribution.reception.parameters;
 
+import lombok.AllArgsConstructor;
 import lombok.Getter;
 import org.onap.policy.common.parameters.BeanValidationResult;
 import org.onap.policy.common.parameters.BeanValidator;
  */
 @Getter
 @NotBlank
+@AllArgsConstructor
 public class PolicyDecoderParameters implements ParameterGroup {
     private @NotNull String decoderType;
     private @NotNull @ClassName String decoderClassName;
     private String decoderConfigurationName;
 
-    /**
-     * Constructor for instantiating PolicyDecoderParameters.
-     *
-     * @param decoderType the policy decoder type
-     * @param decoderClassName the policy decoder class name
-     * @param decoderConfigurationName the policy decoder configuration name
-     */
-    public PolicyDecoderParameters(final String decoderType, final String decoderClassName,
-            final String decoderConfigurationName) {
-        this.decoderType = decoderType;
-        this.decoderClassName = decoderClassName;
-        this.decoderConfigurationName = decoderConfigurationName;
-    }
-
     /**
      * {@inheritDoc}.
      */
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2016-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.distribution.reception.decoding;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-/**
- * Class to perform unit test of {@link PluginInitializationException}.
- *
- * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
- */
-public class PluginInitializationExceptionTest {
-
-    @Test
-    public void testPluginInitializationExceptionString() {
-        final PluginInitializationException pluginInitializationException =
-                new PluginInitializationException("error message");
-        assertEquals("error message", pluginInitializationException.getMessage());
-    }
-
-    @Test
-    public void testPluginInitializationExceptionStringThrowable() {
-        final Exception cause = new IllegalArgumentException();
-        final PluginInitializationException pluginInitializationException =
-                new PluginInitializationException("error message", cause);
-        assertEquals("error message", pluginInitializationException.getMessage());
-        assertEquals(cause, pluginInitializationException.getCause());
-    }
-
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2016-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.distribution.reception.decoding;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-/**
- * Class to perform unit test of {@link PluginTerminationException}.
- *
- * @author Ram Krishna Verma (ram.krishna.verma@ericsson.com)
- */
-public class PluginTerminationExceptionTest {
-
-    @Test
-    public void testPluginTerminationExceptionString() {
-        final PluginTerminationException pluginTerminationException = new PluginTerminationException("error message");
-        assertEquals("error message", pluginTerminationException.getMessage());
-    }
-
-    @Test
-    public void testPluginTerminationExceptionStringThrowable() {
-        final Exception cause = new IllegalArgumentException();
-        final PluginTerminationException pluginTerminationException = new PluginTerminationException("error message",
-            cause);
-        assertEquals("error message", pluginTerminationException.getMessage());
-        assertEquals(cause, pluginTerminationException.getCause());
-    }
-
-}
 
+++ /dev/null
-/*-
- * ============LICENSE_START=======================================================
- *  Copyright (C) 2016-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.distribution.reception.decoding;
-
-import static org.junit.Assert.assertEquals;
-
-import org.junit.Test;
-
-public class PolicyDecodingExceptionTest {
-
-    @Test
-    public void testPolicyDecodingExceptionString() {
-        final PolicyDecodingException policyDecodingException = new PolicyDecodingException("error message");
-        assertEquals("error message", policyDecodingException.getMessage());
-    }
-
-    @Test
-    public void testPolicyDecodingExceptionStringThrowable() {
-        final Exception cause = new IllegalArgumentException();
-        final PolicyDecodingException policyDecodingException = new PolicyDecodingException("error message", cause);
-        assertEquals("error message", policyDecodingException.getMessage());
-        assertEquals(cause, policyDecodingException.getCause());
-    }
-
-}
 
 /*-
  * ============LICENSE_START=======================================================
- *  Copyright (C) 2018 Intel. All rights reserved.
+ *  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.
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.distribution.reception.handling.sdc.exceptions;
+package org.onap.policy.distribution.reception.decoding;
 
-import static org.junit.Assert.assertNotNull;
-
-import java.io.IOException;
 import org.junit.Test;
+import org.onap.policy.common.utils.test.ExceptionsTester;
 
-public class ArtifactInstallerExceptionTest {
+public class TestExceptions {
 
     @Test
     public void test() {
-        assertNotNull(new ArtifactInstallerException("Message"));
-        assertNotNull(new ArtifactInstallerException("Message", new IOException()));
+        new ExceptionsTester().test(PluginInitializationException.class);
+        new ExceptionsTester().test(PluginTerminationException.class);
+        new ExceptionsTester().test(PolicyDecodingException.class);
     }
 }