import org.onap.policy.common.parameters.ParameterGroup;
 import org.onap.policy.common.parameters.ValidationStatus;
 import org.onap.policy.common.utils.validation.ParameterValidationUtils;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
     private String name;
     private RestServerParameters restServerParameters;
     private Map<String, ReceptionHandlerParameters> receptionHandlerParameters;
+    private Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters =
+            new LinkedHashMap<>();
     private Map<String, PolicyForwarderConfigurationParameterGroup> policyForwarderConfigurationParameters =
             new LinkedHashMap<>();
 
      */
     public DistributionParameterGroup(final String name, final RestServerParameters restServerParameters,
             final Map<String, ReceptionHandlerParameters> receptionHandlerParameters,
+            final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters,
             final Map<String, PolicyForwarderConfigurationParameterGroup> policyForwarderConfigurationParameters) {
         this.name = name;
         this.restServerParameters = restServerParameters;
         this.receptionHandlerParameters = receptionHandlerParameters;
+        this.receptionHandlerConfigurationParameters = receptionHandlerConfigurationParameters;
         this.policyForwarderConfigurationParameters = policyForwarderConfigurationParameters;
     }
 
         return restServerParameters;
     }
 
+    /**
+     * Gets the reception handler configuration parameter map.
+     *
+     * @return the reception handler configuration parameter map
+     */
+    public Map<String, ReceptionHandlerConfigurationParameterGroup> getReceptionHandlerConfigurationParameters() {
+        return receptionHandlerConfigurationParameters;
+    }
+
+    /**
+     * Sets the reception handler configuration parameter map.
+     *
+     * @param eventInputParameters the reception handler configuration parameters
+     */
+    public void setReceptionHandlerConfigurationParameters(
+            final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters) {
+        this.receptionHandlerConfigurationParameters = receptionHandlerConfigurationParameters;
+    }
 
     /**
      * Gets the policy forwarder configuration parameter map.
 
 import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.distribution.main.PolicyDistributionException;
 import org.onap.policy.distribution.main.startstop.DistributionCommandLineArguments;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParametersJsonAdapter;
 
 /**
  * This class handles reading, parsing and validating of policy distribution parameters from JSON
         // Read the parameters
         try {
             // Read the parameters from JSON using Gson
-            final Gson gson = new GsonBuilder().registerTypeAdapter(PolicyForwarderConfigurationParameterGroup.class,
-                    new PolicyForwarderConfigurationParametersJsonAdapter()).create();
+            final Gson gson = new GsonBuilder()
+                    .registerTypeAdapter(PolicyForwarderConfigurationParameterGroup.class,
+                            new PolicyForwarderConfigurationParametersJsonAdapter())
+                    .registerTypeAdapter(ReceptionHandlerConfigurationParameterGroup.class,
+                            new ReceptionHandlerConfigurationParametersJsonAdapter())
+                    .create();
             distributionParameterGroup = gson.fromJson(new FileReader(arguments.getFullConfigurationFilePath()),
                     DistributionParameterGroup.class);
         } catch (final Exception e) {
 
 import org.onap.policy.distribution.main.rest.DistributionRestServer;
 import org.onap.policy.distribution.reception.decoding.PluginInitializationException;
 import org.onap.policy.distribution.reception.handling.AbstractReceptionHandler;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
         for (final ReceptionHandlerParameters params : distributionParameterGroup.getReceptionHandlerParameters()
                 .values()) {
             params.setName(distributionParameterGroup.getName());
-            params.getPssdConfigurationParametersGroup().setName(distributionParameterGroup.getName());
             params.getPluginHandlerParameters().setName(distributionParameterGroup.getName());
             ParameterService.register(params);
-            ParameterService.register(params.getPssdConfigurationParametersGroup());
             ParameterService.register(params.getPluginHandlerParameters());
         }
         for (final Entry<String, PolicyForwarderConfigurationParameterGroup> forwarderConfiguration : distributionParameterGroup
             forwarderConfiguration.getValue().setName(forwarderConfiguration.getKey());
             ParameterService.register(forwarderConfiguration.getValue());
         }
+        for (final Entry<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfiguration : distributionParameterGroup
+                .getReceptionHandlerConfigurationParameters().entrySet()) {
+            receptionHandlerConfiguration.getValue().setName(receptionHandlerConfiguration.getKey());
+            ParameterService.register(receptionHandlerConfiguration.getValue());
+        }
     }
 
     /**
         for (final ReceptionHandlerParameters params : distributionParameterGroup.getReceptionHandlerParameters()
                 .values()) {
             ParameterService.deregister((params.getName()));
-            ParameterService.deregister((params.getPssdConfigurationParametersGroup().getName()));
             ParameterService.deregister((params.getPluginHandlerParameters().getName()));
         }
         for (final Entry<String, PolicyForwarderConfigurationParameterGroup> forwarderConfiguration : distributionParameterGroup
             forwarderConfiguration.getValue().setName(forwarderConfiguration.getKey());
             ParameterService.deregister(forwarderConfiguration.getKey());
         }
+        for (final Entry<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfiguration : distributionParameterGroup
+                .getReceptionHandlerConfigurationParameters().entrySet()) {
+            receptionHandlerConfiguration.getValue().setName(receptionHandlerConfiguration.getKey());
+            ParameterService.deregister(receptionHandlerConfiguration.getKey());
+        }
     }
 
     /**
 
 import org.onap.policy.distribution.forwarding.parameters.PolicyForwarderParameters;
 import org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup;
 import org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup.DummyPolicyForwarderParameterGroupBuilder;
+import org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup;
+import org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup.DummyReceptionHandlerParameterGroupBuilder;
 import org.onap.policy.distribution.reception.parameters.PluginHandlerParameters;
 import org.onap.policy.distribution.reception.parameters.PolicyDecoderParameters;
-import org.onap.policy.distribution.reception.parameters.PssdConfigurationParametersGroup;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
     public static final String RECEPTION_HANDLER_TYPE = "DummyReceptionHandler";
     public static final String RECEPTION_HANDLER_CLASS_NAME =
             "org.onap.policy.distribution.main.testclasses.DummyReceptionHandler";
+    public static final String RECEPTION_CONFIGURATION_PARAMETERS = "dummyReceptionHandlerConfiguration";
+    public static final String MY_STRING_PARAMETER_VALUE = "aStringValue";
+    public static final Boolean MY_BOOLEAN_PARAMETER_VALUE = true;
+    public static final int MY_INTEGER_PARAMETER_VALUE = 1234;
+
     public static final String DUMMY_RECEPTION_HANDLER_KEY = "DummyReceptionHandler";
     public static final String DUMMY_ENGINE_FORWARDER_KEY = "DummyForwarder";
     public static final String DUMMY_DECODER_KEY = "DummyDecoder";
         if (!isEmpty) {
             final Map<String, PolicyDecoderParameters> policyDecoders = getPolicyDecoders(isEmpty);
             final Map<String, PolicyForwarderParameters> policyForwarders = getPolicyForwarders(isEmpty);
-            final PssdConfigurationParametersGroup pssdConfiguration = getPssdConfigurationParametersGroup(isEmpty);;
             final PluginHandlerParameters pHParameters = new PluginHandlerParameters(policyDecoders, policyForwarders);
             final ReceptionHandlerParameters rhParameters = new ReceptionHandlerParameters(RECEPTION_HANDLER_TYPE,
-                    RECEPTION_HANDLER_CLASS_NAME, pssdConfiguration, pHParameters);
+                    RECEPTION_HANDLER_CLASS_NAME, RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
             receptionHandlerParameters.put(DUMMY_RECEPTION_HANDLER_KEY, rhParameters);
         }
         return receptionHandlerParameters;
     }
 
     /**
-     * Returns an instance of PssdConfigurationParametersGroup for test cases.
+     * Returns ReceptionHandlerConfigurationParameterGroups for test cases.
      *
      * @param isEmpty boolean value to represent that object created should be empty or not
-     * @return the PssdConfigurationParametersGroup object
+     * @return the ReceptionHandlerConfigurationParameterGroups
      */
-    public PssdConfigurationParametersGroup getPssdConfigurationParametersGroup(final boolean isEmpty) {
-        final PssdConfigurationParametersGroup pssdConfiguration;
+    public Map<String, ReceptionHandlerConfigurationParameterGroup> getReceptionHandlerConfigurationParameters(
+            final boolean isEmpty) {
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurationParameters =
+                new HashMap<String, ReceptionHandlerConfigurationParameterGroup>();
         if (!isEmpty) {
             final List<String> messageBusAddress = new ArrayList<>();
             messageBusAddress.add("localhost");
             final List<String> artifactTypes = new ArrayList<>();
             artifactTypes.add("TOSCA_CSAR");
-            pssdConfiguration = new PssdConfigurationParametersGroup.PssdConfigurationBuilder()
-                    .setAsdcAddress("localhost").setMessageBusAddress(messageBusAddress).setUser("policy")
-                    .setPassword("policy").setPollingInterval(20).setPollingTimeout(30).setConsumerId("policy-id")
-                    .setArtifactTypes(artifactTypes).setConsumerGroup("policy-group").setEnvironmentName("TEST")
-                    .setKeystorePath("").setKeystorePassword("").setActiveserverTlsAuth(false)
-                    .setIsFilterinEmptyResources(true).setIsUseHttpsWithDmaap(false).build();
-        } else {
-            pssdConfiguration = new PssdConfigurationParametersGroup.PssdConfigurationBuilder().build();
+            DummyReceptionHandlerParameterGroup dummyReceptionHandlerParameterGroup =
+                    new DummyReceptionHandlerParameterGroupBuilder().setMyStringParameter(MY_STRING_PARAMETER_VALUE)
+                            .setMyIntegerParameter(MY_INTEGER_PARAMETER_VALUE)
+                            .setMyBooleanParameter(MY_BOOLEAN_PARAMETER_VALUE).build();
+            receptionHandlerConfigurationParameters.put(RECEPTION_CONFIGURATION_PARAMETERS,
+                    dummyReceptionHandlerParameterGroup);
         }
-        return pssdConfiguration;
+        return receptionHandlerConfigurationParameters;
     }
 
     /**
 
 import org.junit.Test;
 import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup;
+import org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
     @Test
     public void testDistributionParameterGroup() {
         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
-        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters = commonTestData
-                        .getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
+                commonTestData.getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
+                commonTestData.getReceptionHandlerConfigurationParameters(false);
         final Map<String, PolicyForwarderConfigurationParameterGroup> forwarderConfigurations =
                 commonTestData.getPolicyForwarderConfigurationParameters(false);
 
         final DistributionParameterGroup distributionParameters =
                 new DistributionParameterGroup(CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters,
-                        receptionHandlerParameters, forwarderConfigurations);
+                        receptionHandlerParameters, receptionHandlerConfigurations, forwarderConfigurations);
         final GroupValidationResult validationResult = distributionParameters.validate();
         assertTrue(validationResult.isValid());
         assertEquals(restServerParameters.getHost(), distributionParameters.getRestServerParameters().getHost());
         assertEquals(restServerParameters.getPort(), distributionParameters.getRestServerParameters().getPort());
         assertEquals(restServerParameters.getUserName(),
-                        distributionParameters.getRestServerParameters().getUserName());
+                distributionParameters.getRestServerParameters().getUserName());
         assertEquals(restServerParameters.getPassword(),
-                        distributionParameters.getRestServerParameters().getPassword());
+                distributionParameters.getRestServerParameters().getPassword());
         assertEquals(CommonTestData.DISTRIBUTION_GROUP_NAME, distributionParameters.getName());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                        .getReceptionHandlerType(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType(),
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getReceptionHandlerType());
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
                         .getReceptionHandlerClassName(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                                        .getReceptionHandlerClassName());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                        .getPluginHandlerParameters(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters());
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getReceptionHandlerClassName());
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters(),
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getPluginHandlerParameters());
+        assertEquals(CommonTestData.MY_STRING_PARAMETER_VALUE,
+                ((DummyReceptionHandlerParameterGroup) distributionParameters
+                        .getReceptionHandlerConfigurationParameters()
+                        .get(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS)).getMyStringParameter());
+        assertEquals(CommonTestData.MY_INTEGER_PARAMETER_VALUE,
+                ((DummyReceptionHandlerParameterGroup) distributionParameters
+                        .getReceptionHandlerConfigurationParameters()
+                        .get(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS)).getMyIntegerParameter());
+        assertEquals(CommonTestData.MY_BOOLEAN_PARAMETER_VALUE,
+                ((DummyReceptionHandlerParameterGroup) distributionParameters
+                        .getReceptionHandlerConfigurationParameters()
+                        .get(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS)).getMyBooleanParameter());
         assertEquals(CommonTestData.FORWARDER_HOST,
                 ((DummyPolicyForwarderParameterGroup) distributionParameters.getPolicyForwarderConfigurationParameters()
                         .get(CommonTestData.FORWARDER_CONFIGURATION_PARAMETERS)).getHostname());
     @Test
     public void testDistributionParameterGroup_NullName() {
         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
-        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters = commonTestData
-                        .getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
+                commonTestData.getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
+                commonTestData.getReceptionHandlerConfigurationParameters(false);
         final Map<String, PolicyForwarderConfigurationParameterGroup> forwarderConfigurations =
                 commonTestData.getPolicyForwarderConfigurationParameters(false);
 
-        final DistributionParameterGroup distributionParameters = new DistributionParameterGroup(null,
-                restServerParameters, receptionHandlerParameters, forwarderConfigurations);
+        final DistributionParameterGroup distributionParameters =
+                new DistributionParameterGroup(null, restServerParameters, receptionHandlerParameters,
+                        receptionHandlerConfigurations, forwarderConfigurations);
         final GroupValidationResult validationResult = distributionParameters.validate();
         assertFalse(validationResult.isValid());
         assertEquals(null, distributionParameters.getName());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                        .getReceptionHandlerType(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType(),
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getReceptionHandlerType());
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
                         .getReceptionHandlerClassName(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                                        .getReceptionHandlerClassName());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                        .getPluginHandlerParameters(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters());
-        assertTrue(validationResult.getResult()
-                        .contains("field \"name\" type \"java.lang.String\" value \"null\" INVALID, "
-                                        + "must be a non-blank string"));
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getReceptionHandlerClassName());
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters(),
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getPluginHandlerParameters());
+        assertTrue(validationResult.getResult().contains(
+                "field \"name\" type \"java.lang.String\" value \"null\" INVALID, " + "must be a non-blank string"));
     }
 
     @Test
     public void testDistributionParameterGroup_EmptyName() {
         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
-        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters = commonTestData
-                        .getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
+                commonTestData.getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
+                commonTestData.getReceptionHandlerConfigurationParameters(false);
         final Map<String, PolicyForwarderConfigurationParameterGroup> forwarderConfigurations =
                 commonTestData.getPolicyForwarderConfigurationParameters(false);
 
-        final DistributionParameterGroup distributionParameters = new DistributionParameterGroup("",
-                restServerParameters, receptionHandlerParameters, forwarderConfigurations);
+        final DistributionParameterGroup distributionParameters =
+                new DistributionParameterGroup("", restServerParameters, receptionHandlerParameters,
+                        receptionHandlerConfigurations, forwarderConfigurations);
         final GroupValidationResult validationResult = distributionParameters.validate();
         assertFalse(validationResult.isValid());
         assertEquals("", distributionParameters.getName());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                        .getReceptionHandlerType(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getReceptionHandlerType(),
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getReceptionHandlerType());
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
                         .getReceptionHandlerClassName(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                                        .getReceptionHandlerClassName());
-        assertEquals(receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
-                        .getPluginHandlerParameters(),
-                        distributionParameters.getReceptionHandlerParameters()
-                                        .get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters());
-        assertTrue(validationResult.getResult().contains("field \"name\" type \"java.lang.String\" value \"\" INVALID, "
-                        + "must be a non-blank string"));
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getReceptionHandlerClassName());
+        assertEquals(
+                receptionHandlerParameters.get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY).getPluginHandlerParameters(),
+                distributionParameters.getReceptionHandlerParameters().get(CommonTestData.DUMMY_RECEPTION_HANDLER_KEY)
+                        .getPluginHandlerParameters());
+        assertTrue(validationResult.getResult().contains(
+                "field \"name\" type \"java.lang.String\" value \"\" INVALID, " + "must be a non-blank string"));
     }
 
     @Test
     public void testDistributionParameterGroup_NullReceptionHandlerParameters() {
         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
+                commonTestData.getReceptionHandlerConfigurationParameters(false);
         final Map<String, PolicyForwarderConfigurationParameterGroup> forwarderConfigurations =
                 commonTestData.getPolicyForwarderConfigurationParameters(false);
         try {
-            final DistributionParameterGroup distributionParameters = new DistributionParameterGroup(
-                    CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters, null, forwarderConfigurations);
+            final DistributionParameterGroup distributionParameters =
+                    new DistributionParameterGroup(CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters, null,
+                            receptionHandlerConfigurations, forwarderConfigurations);
             distributionParameters.validate();
             fail("test should throw an exception here");
         } catch (final Exception e) {
     @Test
     public void testDistributionParameterGroup_EmptyReceptionHandlerParameters() {
         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(false);
-        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters = commonTestData
-                        .getReceptionHandlerParameters(true);
+        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
+                commonTestData.getReceptionHandlerParameters(true);
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
+                commonTestData.getReceptionHandlerConfigurationParameters(false);
         final Map<String, PolicyForwarderConfigurationParameterGroup> forwarderConfigurations =
                 commonTestData.getPolicyForwarderConfigurationParameters(false);
         final DistributionParameterGroup distributionParameters =
                 new DistributionParameterGroup(CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters,
-                        receptionHandlerParameters, forwarderConfigurations);
+                        receptionHandlerParameters, receptionHandlerConfigurations, forwarderConfigurations);
         distributionParameters.validate();
         GroupValidationResult result = distributionParameters.validate();
         assertFalse(result.isValid());
     @Test
     public void testDistributionParameterGroup_EmptyRestServerParameters() {
         final RestServerParameters restServerParameters = commonTestData.getRestServerParameters(true);
-        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters = commonTestData
-                        .getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerParameters> receptionHandlerParameters =
+                commonTestData.getReceptionHandlerParameters(false);
+        final Map<String, ReceptionHandlerConfigurationParameterGroup> receptionHandlerConfigurations =
+                commonTestData.getReceptionHandlerConfigurationParameters(false);
         final Map<String, PolicyForwarderConfigurationParameterGroup> forwarderConfigurations =
                 commonTestData.getPolicyForwarderConfigurationParameters(false);
 
         final DistributionParameterGroup distributionParameters =
                 new DistributionParameterGroup(CommonTestData.DISTRIBUTION_GROUP_NAME, restServerParameters,
-                        receptionHandlerParameters, forwarderConfigurations);
+                        receptionHandlerParameters, receptionHandlerConfigurations, forwarderConfigurations);
         final GroupValidationResult validationResult = distributionParameters.validate();
         assertFalse(validationResult.isValid());
         assertTrue(validationResult.getResult()
-                        .contains("\"org.onap.policy.distribution.main.parameters.RestServerParameters\" INVALID, "
-                                        + "parameter group has status INVALID"));
+                .contains("\"org.onap.policy.distribution.main.parameters.RestServerParameters\" INVALID, "
+                        + "parameter group has status INVALID"));
     }
 }
 
 import org.junit.Test;
 import org.onap.policy.common.parameters.GroupValidationResult;
 import org.onap.policy.distribution.reception.parameters.PluginHandlerParameters;
-import org.onap.policy.distribution.reception.parameters.PssdConfigurationParametersGroup;
 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
     @Test
     public void testReceptionHandlerParameters() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(false);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
         final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters(
-                        CommonTestData.RECEPTION_HANDLER_TYPE, CommonTestData.RECEPTION_HANDLER_CLASS_NAME,
-                        pssdConfiguration, pHParameters);
+                CommonTestData.RECEPTION_HANDLER_TYPE, CommonTestData.RECEPTION_HANDLER_CLASS_NAME,
+                CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         final GroupValidationResult validationResult = rHParameters.validate();
         assertEquals(CommonTestData.RECEPTION_HANDLER_TYPE, rHParameters.getReceptionHandlerType());
         assertEquals(CommonTestData.RECEPTION_HANDLER_CLASS_NAME, rHParameters.getReceptionHandlerClassName());
-        assertEquals(pssdConfiguration, rHParameters.getPssdConfigurationParametersGroup());
+        assertEquals(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS,
+                rHParameters.getReceptionHandlerConfigurationName());
         assertEquals(pHParameters, rHParameters.getPluginHandlerParameters());
         assertTrue(validationResult.isValid());
     }
     @Test
     public void testReceptionHandlerParameters_NullReceptionHandlerType() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(false);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
-        final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters(null,
-                        CommonTestData.RECEPTION_HANDLER_CLASS_NAME, pssdConfiguration, pHParameters);
+        final ReceptionHandlerParameters rHParameters =
+                new ReceptionHandlerParameters(null, CommonTestData.RECEPTION_HANDLER_CLASS_NAME,
+                        CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         final GroupValidationResult validationResult = rHParameters.validate();
         assertEquals(null, rHParameters.getReceptionHandlerType());
         assertEquals(CommonTestData.RECEPTION_HANDLER_CLASS_NAME, rHParameters.getReceptionHandlerClassName());
-        assertEquals(pssdConfiguration, rHParameters.getPssdConfigurationParametersGroup());
+        assertEquals(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS,
+                rHParameters.getReceptionHandlerConfigurationName());
         assertEquals(pHParameters, rHParameters.getPluginHandlerParameters());
         assertFalse(validationResult.isValid());
         assertTrue(validationResult.getResult()
-                        .contains("field \"receptionHandlerType\" type \"java.lang.String\" value \"null\" INVALID, "
-                                        + "must be a non-blank string"));
+                .contains("field \"receptionHandlerType\" type \"java.lang.String\" value \"null\" INVALID, "
+                        + "must be a non-blank string"));
     }
 
     @Test
     public void testReceptionHandlerParameters_NullReceptionHandlerClassName() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(false);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
-        final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters(
-                        CommonTestData.RECEPTION_HANDLER_TYPE, null, pssdConfiguration, pHParameters);
+        final ReceptionHandlerParameters rHParameters =
+                new ReceptionHandlerParameters(CommonTestData.RECEPTION_HANDLER_TYPE, null,
+                        CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         final GroupValidationResult validationResult = rHParameters.validate();
         assertEquals(CommonTestData.RECEPTION_HANDLER_TYPE, rHParameters.getReceptionHandlerType());
         assertEquals(null, rHParameters.getReceptionHandlerClassName());
-        assertEquals(pssdConfiguration, rHParameters.getPssdConfigurationParametersGroup());
+        assertEquals(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS,
+                rHParameters.getReceptionHandlerConfigurationName());
         assertEquals(pHParameters, rHParameters.getPluginHandlerParameters());
         assertFalse(validationResult.isValid());
-        assertTrue(validationResult.getResult().contains(
-                        "field \"receptionHandlerClassName\" type \"java.lang.String\" value \"null\" INVALID, "
-                                        + "must be a non-blank string containing full class name "
-                                        + "of the reception handler"));
+        assertTrue(validationResult.getResult()
+                .contains("field \"receptionHandlerClassName\" type \"java.lang.String\" value \"null\" INVALID, "
+                        + "must be a non-blank string containing full class name " + "of the reception handler"));
     }
 
     @Test
     public void testReceptionHandlerParameters_EmptyReceptionHandlerType() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(false);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
-        final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters("",
-                        CommonTestData.RECEPTION_HANDLER_CLASS_NAME, pssdConfiguration, pHParameters);
+        final ReceptionHandlerParameters rHParameters =
+                new ReceptionHandlerParameters("", CommonTestData.RECEPTION_HANDLER_CLASS_NAME,
+                        CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         final GroupValidationResult validationResult = rHParameters.validate();
         assertEquals("", rHParameters.getReceptionHandlerType());
         assertEquals(CommonTestData.RECEPTION_HANDLER_CLASS_NAME, rHParameters.getReceptionHandlerClassName());
         assertEquals(pHParameters, rHParameters.getPluginHandlerParameters());
         assertFalse(validationResult.isValid());
         assertTrue(validationResult.getResult()
-                        .contains("field \"receptionHandlerType\" type \"java.lang.String\" value \"\" INVALID, "
-                                        + "must be a non-blank string"));
+                .contains("field \"receptionHandlerType\" type \"java.lang.String\" value \"\" INVALID, "
+                        + "must be a non-blank string"));
     }
 
     @Test
     public void testReceptionHandlerParameters_EmptyReceptionHandlerClassName() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(false);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
-        final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters(
-                        CommonTestData.RECEPTION_HANDLER_TYPE, "", pssdConfiguration, pHParameters);
+        final ReceptionHandlerParameters rHParameters =
+                new ReceptionHandlerParameters(CommonTestData.RECEPTION_HANDLER_TYPE, "",
+                        CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         final GroupValidationResult validationResult = rHParameters.validate();
         assertEquals(CommonTestData.RECEPTION_HANDLER_TYPE, rHParameters.getReceptionHandlerType());
         assertEquals("", rHParameters.getReceptionHandlerClassName());
-        assertEquals(pssdConfiguration, rHParameters.getPssdConfigurationParametersGroup());
+        assertEquals(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS,
+                rHParameters.getReceptionHandlerConfigurationName());
         assertEquals(pHParameters, rHParameters.getPluginHandlerParameters());
         assertFalse(validationResult.isValid());
         assertTrue(validationResult.getResult()
-                        .contains("field \"receptionHandlerClassName\" type \"java.lang.String\" value \"\" INVALID, "
-                                        + "must be a non-blank string containing full class name "
-                                        + "of the reception handler"));
+                .contains("field \"receptionHandlerClassName\" type \"java.lang.String\" value \"\" INVALID, "
+                        + "must be a non-blank string containing full class name " + "of the reception handler"));
     }
 
     @Test
     public void testReceptionHandlerParameters_EmptyPluginHandler() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(true);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
         final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters(
-                        CommonTestData.RECEPTION_HANDLER_TYPE, CommonTestData.RECEPTION_HANDLER_CLASS_NAME,
-                        pssdConfiguration, pHParameters);
+                CommonTestData.RECEPTION_HANDLER_TYPE, CommonTestData.RECEPTION_HANDLER_CLASS_NAME,
+                CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         GroupValidationResult result = rHParameters.validate();
         assertFalse(result.isValid());
         assertTrue(result.getResult().endsWith("must have at least one policy forwarder\n"));
     @Test
     public void testReceptionHandlerParameters_InvalidReceptionHandlerClass() {
         final PluginHandlerParameters pHParameters = commonTestData.getPluginHandlerParameters(false);
-        final PssdConfigurationParametersGroup pssdConfiguration = commonTestData
-                        .getPssdConfigurationParametersGroup(false);
+
         final ReceptionHandlerParameters rHParameters = new ReceptionHandlerParameters(
-                        CommonTestData.RECEPTION_HANDLER_TYPE, CommonTestData.RECEPTION_HANDLER_CLASS_NAME + "Invalid",
-                        pssdConfiguration, pHParameters);
+                CommonTestData.RECEPTION_HANDLER_TYPE, CommonTestData.RECEPTION_HANDLER_CLASS_NAME + "Invalid",
+                CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS, pHParameters);
         final GroupValidationResult validationResult = rHParameters.validate();
         assertEquals(CommonTestData.RECEPTION_HANDLER_TYPE, rHParameters.getReceptionHandlerType());
         assertEquals(CommonTestData.RECEPTION_HANDLER_CLASS_NAME + "Invalid",
-                        rHParameters.getReceptionHandlerClassName());
-        assertEquals(pssdConfiguration, rHParameters.getPssdConfigurationParametersGroup());
+                rHParameters.getReceptionHandlerClassName());
+        assertEquals(CommonTestData.RECEPTION_CONFIGURATION_PARAMETERS,
+                rHParameters.getReceptionHandlerConfigurationName());
         assertEquals(pHParameters, rHParameters.getPluginHandlerParameters());
         assertFalse(validationResult.isValid());
         assertTrue(validationResult.getResult().contains("reception handler class not found in classpath"));
 
--- /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.main.testclasses;
+
+import org.onap.policy.common.parameters.GroupValidationResult;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
+
+public class DummyReceptionHandlerParameterGroup extends ReceptionHandlerConfigurationParameterGroup {
+
+    private String myStringParameter;
+    private int myIntegerParameter;
+    private boolean myBooleanParameter;
+
+    /**
+     * Inner static class is to used as a Builder.
+     *
+     */
+    public static class DummyReceptionHandlerParameterGroupBuilder {
+        private String myStringParameter;
+        private int myIntegerParameter;
+        private boolean myBooleanParameter;
+
+        public DummyReceptionHandlerParameterGroupBuilder setMyStringParameter(final String val) {
+            myStringParameter = val;
+            return this;
+        }
+
+        public DummyReceptionHandlerParameterGroupBuilder setMyIntegerParameter(final int val) {
+            myIntegerParameter = val;
+            return this;
+        }
+
+        public DummyReceptionHandlerParameterGroupBuilder setMyBooleanParameter(final boolean val) {
+            myBooleanParameter = val;
+            return this;
+        }
+
+        /**
+         * Creates a new DummyReceptionHandlerConfigurationParameterGroup instance.
+         */
+        public DummyReceptionHandlerParameterGroup build() {
+            return new DummyReceptionHandlerParameterGroup(this);
+        }
+    }
+
+    /**
+     * The constructor for instantiating PssdConfigurationParameterGroup. It is kept private so that
+     * it could only be called by PssdConfigurationBuilder.
+     *
+     * @param builder stores all the values used by PssdConfigurationParametersGroup
+     */
+    private DummyReceptionHandlerParameterGroup(final DummyReceptionHandlerParameterGroupBuilder builder) {
+        myStringParameter = builder.myStringParameter;
+        myIntegerParameter = builder.myIntegerParameter;
+        myBooleanParameter = builder.myBooleanParameter;
+    }
+
+    public String getMyStringParameter() {
+        return myStringParameter;
+    }
+
+    public int getMyIntegerParameter() {
+        return myIntegerParameter;
+    }
+
+    public boolean getMyBooleanParameter() {
+        return myBooleanParameter;
+    }
+
+
+    /**
+     * {@inheritDoc}.
+     */
+    @Override
+    public GroupValidationResult validate() {
+        return new GroupValidationResult(this);
+    }
+
+}
+
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                 },
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
     },
     "receptionHandlerParameters":{
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.InvalidSdcReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyForwarders":{
                     "DummyForwarder":{
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
         "DummyReceptionHandler":{
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{
                 "policyDecoders":{
                     "DummyDecoder":{
                 }
             }
         }
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
     }
 }
 
         "port":6969,
         "userName":"healthcheck",
         "password":"zb!XztG34"
+    },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
     }
 }
\ No newline at end of file
 
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.Unknown",
 
         "DummyReceptionHandler":{  
             "receptionHandlerType":"DummyReceptionHandler",
             "receptionHandlerClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandler",
-            "pssdConfiguration":{
-                "asdcAddress": "localhost",
-                "messageBusAddress": [
-                    "a.com",
-                    "b.com",
-                    "c.com"
-                 ],
-                "user": "tbdsdc-1480",
-                "password": "tbdsdc-1480",
-                "pollingInterval":20,
-                "pollingTimeout":30,
-                "consumerId": "policy-id",
-                "artifactTypes": [
-                    "TOSCA_CSAR",
-                    "HEAT"
-                ],
-                "consumerGroup": "policy-group",
-                "environmentName": "environmentName",
-                "keystorePath": "null",
-                "keystorePassword": "null",
-                "activeserverTlsAuth": false,
-                "isFilterinEmptyResources": true,
-                "isUseHttpsWithDmaap": false
-            },
+            "receptionHandlerConfigurationName":"dummyReceptionHandlerConfiguration",
             "pluginHandlerParameters":{  
                 "policyDecoders":{  
                     "DummyDecoder":{  
             }
         }
     },
+    "receptionHandlerConfigurationParameters":{
+        "dummyReceptionHandlerConfiguration":{
+            "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyReceptionHandlerParameterGroup",
+            "parameters":{
+                "myStringParameter": "stringValue",
+                "myIntegerParameter":20,
+                "myBooleanParameter": true
+            }
+        }
+    },
     "policyForwarderConfigurationParameters":{
         "dummyConfiguration":{
             "parameterClassName":"org.onap.policy.distribution.main.testclasses.DummyPolicyForwarderParameterGroup",
 
 package org.onap.policy.distribution.reception.handling.sdc;
 
 import java.util.List;
-
-import org.onap.policy.distribution.reception.parameters.PssdConfigurationParametersGroup;
 import org.onap.sdc.api.consumer.IConfiguration;
 
 /**
  */
 public class SdcConfiguration implements IConfiguration {
 
-    private PssdConfigurationParametersGroup configParameters = null;
+    private SdcReceptionHandlerConfigurationParameterGroup configParameters = null;
 
     /**
      * Constructor for instantiating {@link SdcConfiguration}.
      *
      * @param configParameters the SDC Client configuration parameters
      */
-    public SdcConfiguration(final PssdConfigurationParametersGroup configParameters) {
+    public SdcConfiguration(final SdcReceptionHandlerConfigurationParameterGroup configParameters) {
         this.configParameters = configParameters;
     }
 
 
 import org.onap.policy.distribution.reception.decoding.PluginInitializationException;
 import org.onap.policy.distribution.reception.decoding.PluginTerminationException;
 import org.onap.policy.distribution.reception.handling.AbstractReceptionHandler;
-import org.onap.policy.distribution.reception.parameters.PssdConfigurationParametersGroup;
 import org.onap.sdc.api.IDistributionClient;
 import org.onap.sdc.api.results.IDistributionClientResult;
 import org.onap.sdc.impl.DistributionClientFactory;
 
     private static final Logger LOGGER = FlexLogger.getLogger(SdcReceptionHandler.class);
     private SdcReceptionHandlerStatus sdcReceptionHandlerStatus = SdcReceptionHandlerStatus.STOPPED;
-    private PssdConfigurationParametersGroup handlerParameters;
+    private SdcReceptionHandlerConfigurationParameterGroup handlerParameters;
     private IDistributionClient distributionClient;
     private volatile int nbOfNotificationsOngoing = 0;
 
     @Override
     protected void initializeReception(final String parameterGroupName) throws PluginInitializationException {
-        handlerParameters = (PssdConfigurationParametersGroup) ParameterService.get(parameterGroupName);
+        handlerParameters = (SdcReceptionHandlerConfigurationParameterGroup) ParameterService.get(parameterGroupName);
         initializeSdcClient();
         startSdcClient();
     }
 
  * ============LICENSE_END=========================================================
  */
 
-package org.onap.policy.distribution.reception.parameters;
+package org.onap.policy.distribution.reception.handling.sdc;
 
 import java.util.List;
 import java.util.UUID;
-
 import org.onap.policy.common.parameters.GroupValidationResult;
-import org.onap.policy.common.parameters.ParameterGroup;
 import org.onap.policy.common.parameters.ValidationStatus;
 import org.onap.policy.common.utils.validation.ParameterValidationUtils;
+import org.onap.policy.distribution.reception.parameters.ReceptionHandlerConfigurationParameterGroup;
 
 /**
- * This class handles reading, parsing and validating of the Policy SDC Service Distribution parameters from Json
- * format, which strictly adheres to the interface:IConfiguration, defined by SDC SDK.
+ * This class handles reading, parsing and validating of the Policy SDC Service Distribution
+ * parameters from Json format, which strictly adheres to the interface:IConfiguration, defined by
+ * SDC SDK.
  */
-public class PssdConfigurationParametersGroup implements ParameterGroup {
-
-    // Policy SDC Service Distribution specified field.
-    private String name;
+public class SdcReceptionHandlerConfigurationParameterGroup extends ReceptionHandlerConfigurationParameterGroup {
 
     // Interface of IConfiguration item
     private String asdcAddress;
         /**
          * Creates a new PssdConfigurationParametersGroup instance.
          */
-        public PssdConfigurationParametersGroup build() {
-            return new PssdConfigurationParametersGroup(this);
+        public SdcReceptionHandlerConfigurationParameterGroup build() {
+            return new SdcReceptionHandlerConfigurationParameterGroup(this);
         }
     }
 
     /**
-     * The constructor for instantiating PssdConfigurationParametersGroup. It is kept private so that it could only be
-     * called by PssdConfigurationBuilder.
+     * The constructor for instantiating PssdConfigurationParametersGroup. It is kept private so
+     * that it could only be called by PssdConfigurationBuilder.
      *
      * @param builder stores all the values used by PssdConfigurationParametersGroup
      */
-    private PssdConfigurationParametersGroup(final PssdConfigurationBuilder builder) {
+    private SdcReceptionHandlerConfigurationParameterGroup(final PssdConfigurationBuilder builder) {
         asdcAddress = builder.asdcAddress;
         messageBusAddress = builder.messageBusAddress;
         user = builder.user;
      */
     @Override
     public String toString() {
-        return "name =" + name + ",TestParameters:[asdcAddress = " + asdcAddress + ", messageBusAddress = "
+        return "name =" + getName() + ",TestParameters:[asdcAddress = " + asdcAddress + ", messageBusAddress = "
                 + messageBusAddress + ", user = " + user + "]";
     }
 
-    /**
-     * {@inheritDoc}
-     */
-    @Override
-    public String getName() {
-        return name;
-    }
-
     /**
      * Set the name of this group.
      *
      * @param name the name to set.
      */
+    @Override
     public void setName(final String name) {
-        this.name = name + "_" + UUID.randomUUID().toString();
+        super.setName(name + "_" + UUID.randomUUID().toString());
     }
 
     /**
 
 
 import org.junit.Test;
 import org.onap.policy.common.parameters.GroupValidationResult;
-import org.onap.policy.distribution.reception.parameters.PssdConfigurationParametersGroup;
 
 /**
  * Class to perform unit test of {@link SdcConfiguration}.
 
     @Test
     public void testSdcConfiguration() throws IOException {
-        PssdConfigurationParametersGroup configParameters = null;
+        SdcReceptionHandlerConfigurationParameterGroup configParameters = null;
         try {
             final Gson gson = new GsonBuilder().create();
             configParameters = gson.fromJson(new FileReader("src/test/resources/handling-sdc.json"),
-                    PssdConfigurationParametersGroup.class);
+                    SdcReceptionHandlerConfigurationParameterGroup.class);
         } catch (final Exception e) {
             fail("test should not thrown an exception here: " + e.getMessage());
         }
 
     @Test
     public void testInvalidSdcConfiguration() throws IOException {
-        PssdConfigurationParametersGroup configParameters = null;
+        SdcReceptionHandlerConfigurationParameterGroup configParameters = null;
         try {
             final Gson gson = new GsonBuilder().create();
             configParameters = gson.fromJson(new FileReader("src/test/resources/handling-sdcInvalid.json"),
-                    PssdConfigurationParametersGroup.class);
+                    SdcReceptionHandlerConfigurationParameterGroup.class);
         } catch (final Exception e) {
             fail("test should not thrown an exception here: " + e.getMessage());
         }
 
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.distribution.reception.decoding.PluginInitializationException;
 import org.onap.policy.distribution.reception.decoding.PluginTerminationException;
-import org.onap.policy.distribution.reception.parameters.PssdConfigurationParametersGroup;
 import org.onap.sdc.api.results.IDistributionClientResult;
 import org.onap.sdc.impl.mock.DistributionClientStubImpl;
 import org.onap.sdc.utils.DistributionActionResultEnum;
     @Mock
     private DistributionClientStubImpl distributionClient;
 
-    private PssdConfigurationParametersGroup pssdConfigParameters;
+    private SdcReceptionHandlerConfigurationParameterGroup pssdConfigParameters;
     private SdcReceptionHandler sypHandler;
 
     /**
     public final void init() throws IOException {
         final Gson gson = new GsonBuilder().create();
         pssdConfigParameters = gson.fromJson(new FileReader("src/test/resources/handling-sdc.json"),
-                PssdConfigurationParametersGroup.class);
+                SdcReceptionHandlerConfigurationParameterGroup.class);
         ParameterService.register(pssdConfigParameters);
         final SdcReceptionHandler sdcHandler = new SdcReceptionHandler();
         sypHandler = Mockito.spy(sdcHandler);
 
             <artifactId>utils</artifactId>
             <version>${policy.common.version}</version>
         </dependency>
+        <dependency>
+            <groupId>com.google.code.gson</groupId>
+            <artifactId>gson</artifactId>
+        </dependency>
     </dependencies>
 </project>
 
 
 import java.util.ArrayList;
 import java.util.Collection;
-
 import org.onap.policy.common.logging.flexlogger.FlexLogger;
 import org.onap.policy.common.logging.flexlogger.Logger;
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.distribution.reception.parameters.ReceptionHandlerParameters;
 
 /**
- * Base implementation of {@link ReceptionHandler}. All reception handlers should extend this base class by implementing
- * the {@link #initializeReception(String)} method to perform the specific initialization required to receive inputs and
- * by invoking {@link #inputReceived(PolicyInput)} when the reception handler receives input.
+ * Base implementation of {@link ReceptionHandler}. All reception handlers should extend this base
+ * class by implementing the {@link #initializeReception(String)} method to perform the specific
+ * initialization required to receive inputs and by invoking {@link #inputReceived(PolicyInput)}
+ * when the reception handler receives input.
  */
 public abstract class AbstractReceptionHandler implements ReceptionHandler {
 
         final ReceptionHandlerParameters receptionHandlerParameters =
                 (ReceptionHandlerParameters) ParameterService.get(parameterGroupName);
         pluginHandler = new PluginHandler(receptionHandlerParameters.getPluginHandlerParameters().getName());
-        initializeReception(receptionHandlerParameters.getPssdConfigurationParametersGroup().getName());
+        initializeReception(receptionHandlerParameters.getReceptionHandlerConfigurationName());
     }
 
     /**
-     * Sub classes must implement this method to perform the specific initialization required to receive inputs, for
-     * example setting up subscriptions.
+     * Sub classes must implement this method to perform the specific initialization required to
+     * receive inputs, for example setting up subscriptions.
      *
      * @param parameterGroupName the parameter group name
      * @throws PluginInitializationException if initialization of reception handler fails
     protected abstract void initializeReception(String parameterGroupName) throws PluginInitializationException;
 
     /**
-     * Handle input that has been received. The given input shall be decoded using the {@link PolicyDecoder}s configured
-     * for this reception handler and forwarded using the {@link PolicyForwarder}s configured for this reception
-     * handler.
+     * Handle input that has been received. The given input shall be decoded using the
+     * {@link PolicyDecoder}s configured for this reception handler and forwarded using the
+     * {@link PolicyForwarder}s configured for this reception handler.
      *
      * @param policyInput the input that has been received
-     * @throws PolicyDecodingException if an error occurs in decoding a policy from the received input
+     * @throws PolicyDecodingException if an error occurs in decoding a policy from the received
+     *         input
      */
     protected void inputReceived(final PolicyInput policyInput) throws PolicyDecodingException {
 
 
--- /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.parameters;
+
+import org.onap.policy.common.parameters.ParameterGroup;
+import org.onap.policy.distribution.reception.handling.ReceptionHandler;
+
+/**
+ * Base class of all {@link ParameterGroup} classes for configuration parameters for
+ * {@link ReceptionHandler} classes
+ */
+public abstract class ReceptionHandlerConfigurationParameterGroup implements ParameterGroup {
+
+    private String name;
+
+    @Override
+    public String getName() {
+        return name;
+    }
+
+    @Override
+    public void setName(final String name) {
+        this.name = name;
+    }
+
+}
 
--- /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.parameters;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonPrimitive;
+import java.lang.reflect.Type;
+import org.slf4j.ext.XLogger;
+import org.slf4j.ext.XLoggerFactory;
+
+/**
+ * This class deserialises reception handler parameters from JSON.
+ */
+public class ReceptionHandlerConfigurationParametersJsonAdapter
+        implements JsonDeserializer<ReceptionHandlerConfigurationParameterGroup> {
+    private static final XLogger LOGGER =
+            XLoggerFactory.getXLogger(ReceptionHandlerConfigurationParametersJsonAdapter.class);
+
+    private static final String PARAMETER_CLASS_NAME = "parameterClassName";
+    private static final String RECEPTION_HANDLER_PARAMETERS = "parameters";
+
+    @Override
+    public ReceptionHandlerConfigurationParameterGroup deserialize(final JsonElement json, final Type typeOfT,
+            final JsonDeserializationContext context) {
+        final JsonObject jsonObject = json.getAsJsonObject();
+
+        final String receptionHandlerParameterClassName = getParameterGroupClassName(jsonObject);
+        Class<?> receptionHandlerParameterClass = getParameterGroupClass(receptionHandlerParameterClassName);
+
+        return context.deserialize(jsonObject.get(RECEPTION_HANDLER_PARAMETERS), receptionHandlerParameterClass);
+    }
+
+    private String getParameterGroupClassName(final JsonObject jsonObject) {
+        final JsonPrimitive classNameJsonPrimitive = ((JsonPrimitive) jsonObject.get(PARAMETER_CLASS_NAME));
+
+        if (classNameJsonPrimitive == null || classNameJsonPrimitive.getAsString().length() == 0) {
+            final String errorMessage = "parameter \"" + PARAMETER_CLASS_NAME + "\" value \""
+                    + (classNameJsonPrimitive != null ? classNameJsonPrimitive.getAsString() : "null")
+                    + "\" invalid in JSON file";
+            LOGGER.warn(errorMessage);
+            throw new IllegalArgumentException(errorMessage);
+        }
+        return classNameJsonPrimitive.getAsString().replaceAll("\\s+", "");
+    }
+
+    private Class<?> getParameterGroupClass(final String receptionHAndlerParameterClassName) {
+        Class<?> receptionHandlerParameterClass = null;
+        try {
+            receptionHandlerParameterClass = Class.forName(receptionHAndlerParameterClassName);
+        } catch (final ClassNotFoundException e) {
+            final String errorMessage = "parameter \"" + PARAMETER_CLASS_NAME + "\" value \""
+                    + receptionHAndlerParameterClassName + "\", could not find class";
+            LOGGER.warn(errorMessage, e);
+            throw new IllegalArgumentException(errorMessage, e);
+        }
+        return receptionHandlerParameterClass;
+    }
+
+}
 
     private String name;
     private String receptionHandlerType;
     private String receptionHandlerClassName;
-    private PssdConfigurationParametersGroup pssdConfiguration;
+    private String receptionHandlerConfigurationName;
     private PluginHandlerParameters pluginHandlerParameters;
 
     /**
      *
      * @param receptionHandlerType the reception handler type
      * @param receptionHandlerClassName the reception handler class name
+     * @param receptionHandlerConfigurationName the name of the configuration for the reception
+     *        handler
      * @param pluginHandlerParameters the plugin handler parameters
      */
-    public ReceptionHandlerParameters(final String receptionHandlerType, final String receptionHandlerClassName, 
-                                      final PssdConfigurationParametersGroup pssdConfiguration, 
-                                      final PluginHandlerParameters pluginHandlerParameters) {
+    public ReceptionHandlerParameters(final String receptionHandlerType, final String receptionHandlerClassName,
+            final String receptionHandlerConfigurationName, final PluginHandlerParameters pluginHandlerParameters) {
         this.receptionHandlerType = receptionHandlerType;
         this.receptionHandlerClassName = receptionHandlerClassName;
-        this.pssdConfiguration = pssdConfiguration;
+        this.receptionHandlerConfigurationName = receptionHandlerConfigurationName;
         this.pluginHandlerParameters = pluginHandlerParameters;
     }
 
     }
 
     /**
-     * Return the PssdConfigurationParametersGroup of this ReceptionHandlerParameters instance.
+     * Return the name of the reception handler configuration for this ReceptionHandlerParameters
+     * instance.
      *
      * @return the PssdConfigurationParametersGroup
      */
-    public PssdConfigurationParametersGroup getPssdConfigurationParametersGroup() {
-        return pssdConfiguration;
+    public String getReceptionHandlerConfigurationName() {
+        return receptionHandlerConfigurationName;
     }
 
     /**
      *
      * @param name the name to set
      */
+    @Override
     public void setName(final String name) {
         this.name = name;
     }