Replaced generic BusTopicParams with more specific RestClientParameters.
Also modified code to pass the HttpClient around instead of passing the
client parameters around.
Issue-ID: POLICY-3456
Change-Id: Ic07b710645eeab696e6df0a015171578ad08ca83
Signed-off-by: Jim Hahn <jrh3@att.com>
 
 import java.net.HttpURLConnection;
 import javax.ws.rs.core.Response;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
-import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
-import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaServiceTemplate;
 import org.slf4j.Logger;
     /**
      * Constructs the object.
      *
-     * @param params target specification
-     * @throws PolicyApiException if an error occurs
+     * @param httpClient API REST client
      */
-    public PolicyApiCaller(BusTopicParams params) throws PolicyApiException {
-        try {
-            params.setClientName("policy-api");
-            httpClient = makeClient(params);
-        } catch (HttpClientConfigException e) {
-            throw new PolicyApiException("connection to host: " + params.getHostname(), e);
-        }
+    public PolicyApiCaller(HttpClient httpClient) {
+        this.httpClient = httpClient;
     }
 
     /**
             throw new PolicyApiException(type.toString(), e);
         }
     }
-
-    // these methods may be overridden by junit tests
-
-    protected HttpClient makeClient(BusTopicParams busParams) throws HttpClientConfigException {
-        return HttpClientFactoryInstance.getClientFactory().build(busParams);
-    }
 }
 
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.decisions.concepts.DecisionResponse;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
      * Also gives api rest parameters if needed.
      *
      * @param pathForData Local Path
-     * @param policyApiParameters API rest parameters
+     * @param policyApiClient API rest client
      */
-    void             initialize(Path pathForData, BusTopicParams policyApiParameters)
+    void             initialize(Path pathForData, HttpClient policyApiClient)
             throws XacmlApplicationException;
 
     /**
 
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.RuleType;
 import oasis.names.tc.xacml._3_0.core.schema.wd_17.TargetType;
 import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardYamlCoder;
     private final Map<ToscaConceptIdentifier, MatchablePolicyType> matchableCache = new HashMap<>();
 
     @Setter
-    private BusTopicParams apiRestParameters;
+    private HttpClient apiClient;
     @Setter
     private Path pathForData;
 
         //
         ToscaServiceTemplate policyTemplate = null;
         try {
-            var api = new PolicyApiCaller(this.apiRestParameters);
+            var api = new PolicyApiCaller(this.apiClient);
 
             policyTemplate = api.getPolicyType(policyTypeId);
         } catch (PolicyApiException e) {
 
 import lombok.Getter;
 import lombok.NoArgsConstructor;
 import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.decisions.concepts.DecisionResponse;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 
     private Path pathForData = null;
     @Getter
-    private BusTopicParams policyApiParameters;
+    private HttpClient policyApiClient;
     private Properties pdpProperties = null;
     private PDPEngine pdpEngine = null;
     private Map<ToscaPolicy, Path> mapLoadedPolicies = new HashMap<>();
     }
 
     @Override
-    public void initialize(Path pathForData, BusTopicParams policyApiParameters)
+    public void initialize(Path pathForData, HttpClient policyApiClient)
             throws XacmlApplicationException {
         //
         // Save our path
         //
         // Save our params
         //
-        this.policyApiParameters = policyApiParameters;
+        this.policyApiClient = policyApiClient;
         //
         // Look for and load the properties object
         //
 
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
-import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
+import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.common.endpoints.http.server.HttpServletServer;
 import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties;
 import org.onap.policy.common.gson.GsonMessageBodyHandler;
 import org.onap.policy.common.utils.network.NetworkUtil;
     private static final String UNKNOWN_TYPE = "unknown";
 
     private static int port;
-    private static BusTopicParams clientParams;
+    private static RestClientParameters clientParams;
+
+    private static HttpClient apiClient;
 
     private PolicyApiCaller api;
 
     public static void setUpBeforeClass() throws Exception {
         port = NetworkUtil.allocPort();
 
-        clientParams = mock(BusTopicParams.class);
+        clientParams = mock(RestClientParameters.class);
+        when(clientParams.getClientName()).thenReturn("apiClient");
         when(clientParams.getHostname()).thenReturn("localhost");
         when(clientParams.getPort()).thenReturn(port);
 
                         GsonMessageBodyHandler.class.getName());
 
         HttpServletServerFactoryInstance.getServerFactory().build(props).forEach(HttpServletServer::start);
+        apiClient = HttpClientFactoryInstance.getClientFactory().build(clientParams);
 
         assertTrue(NetworkUtil.isTcpPortOpen(clientParams.getHostname(), clientParams.getPort(), 100, 100));
     }
     public void setUp() throws PolicyApiException {
         when(clientParams.getPort()).thenReturn(port);
 
-        api = new PolicyApiCaller(clientParams);
-    }
-
-    @Test
-    public void testPolicyApi() {
-        assertThatThrownBy(() -> new PolicyApiCaller(clientParams) {
-            @Override
-            protected HttpClient makeClient(BusTopicParams busParams) throws HttpClientConfigException {
-                throw new HttpClientConfigException("expected exception");
-            }
-        }).isInstanceOf(PolicyApiException.class);
+        api = new PolicyApiCaller(apiClient);
     }
 
     @Test
                         .isInstanceOf(PolicyApiException.class);
 
         // connect to a port that has no server
-        when(clientParams.getPort()).thenReturn(NetworkUtil.allocPort());
-        api = new PolicyApiCaller(clientParams);
+        RestClientParameters params2 = mock(RestClientParameters.class);
+        when(params2.getClientName()).thenReturn("apiClient");
+        when(params2.getHostname()).thenReturn("localhost");
+        when(params2.getPort()).thenReturn(NetworkUtil.allocPort());
+
+        HttpClient apiClient2 = HttpClientFactoryInstance.getClientFactory().build(params2);
+        api = new PolicyApiCaller(apiClient2);
 
         assertThatThrownBy(() -> api.getPolicyType(new ToscaConceptIdentifier(MY_TYPE, MY_VERSION)))
                         .isInstanceOf(PolicyApiException.class);
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
+import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.common.endpoints.http.server.HttpServletServer;
 import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties;
 import org.onap.policy.common.gson.GsonMessageBodyHandler;
 import org.onap.policy.common.utils.coder.CoderException;
     private static final String CLIENT_NAME = "policy-api";
     private static final StandardYamlCoder yamlCoder = new StandardYamlCoder();
     private static int port;
-    private static BusTopicParams clientParams;
+    private static RestClientParameters clientParams;
     private static ToscaServiceTemplate testTemplate;
+    private static HttpClient apiClient;
 
     @ClassRule
     public static final TemporaryFolder policyFolder = new TemporaryFolder();
         //
         port = NetworkUtil.allocPort();
 
-        clientParams = mock(BusTopicParams.class);
+        clientParams = mock(RestClientParameters.class);
+        when(clientParams.getClientName()).thenReturn("apiClient");
         when(clientParams.getHostname()).thenReturn("localhost");
         when(clientParams.getPort()).thenReturn(port);
 
                         GsonMessageBodyHandler.class.getName());
 
         HttpServletServerFactoryInstance.getServerFactory().build(props).forEach(HttpServletServer::start);
+        apiClient = HttpClientFactoryInstance.getClientFactory().build(clientParams);
 
         assertTrue(NetworkUtil.isTcpPortOpen(clientParams.getHostname(), clientParams.getPort(), 100, 100));
         //
         // Set it up
         //
         translator.setPathForData(policyFolder.getRoot().toPath());
-        translator.setApiRestParameters(clientParams);
+        translator.setApiClient(apiClient);
         //
         // Load policies to test
         //
 
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.decisions.concepts.DecisionResponse;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
     private static final String POLICY_NAME = "my-name";
     private static final String POLICY_VERSION = "1.2.3";
     private static final String POLICY_TYPE = "my-type";
-    private static final BusTopicParams apiRestParameters = new BusTopicParams();
+
+    @Mock
+    private HttpClient apiClient;
 
     @Mock
     private ToscaPolicyTranslator trans;
 
     @Test
     public void testInitialize_testGetXxx() throws XacmlApplicationException {
-        prov.initialize(TEMP_PATH, apiRestParameters);
+        prov.initialize(TEMP_PATH, apiClient);
 
         assertEquals(TEMP_PATH, prov.getDataPath());
         assertNotNull(prov.getEngine());
 
     @Test
     public void testInitialize_Ex() throws XacmlApplicationException {
-        assertThatThrownBy(() -> prov.initialize(new File(TEMP_DIR_NAME + "-nonExistent").toPath(), apiRestParameters))
+        assertThatThrownBy(() -> prov.initialize(new File(TEMP_DIR_NAME + "-nonExistent").toPath(), apiClient))
                         .isInstanceOf(XacmlApplicationException.class).hasMessage("Failed to load xacml.properties");
     }
 
 
     @Test
     public void testLoadPolicy_testUnloadPolicy() throws Exception {
-        prov.initialize(TEMP_PATH, apiRestParameters);
+        prov.initialize(TEMP_PATH, apiClient);
         PROP_FILE.delete();
 
         final Set<String> set = XACMLProperties.getRootPolicyIDs(prov.getProperties());
 
     @Test
     public void testUnloadPolicy_NotDeployed() throws Exception {
-        prov.initialize(TEMP_PATH, apiRestParameters);
+        prov.initialize(TEMP_PATH, apiClient);
 
         assertFalse(prov.unloadPolicy(policy));
 
         engineFactory = null;
 
         prov = new MyProv();
-        prov.initialize(TEMP_PATH, apiRestParameters);
+        prov.initialize(TEMP_PATH, apiClient);
 
         assertNotNull(prov.getEngine());
     }
 
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.TextFileUtils;
     private static final Logger LOGGER = LoggerFactory.getLogger(GuardPdpApplicationTest.class);
     private static Properties properties = new Properties();
     private static File propertiesFile;
-    private static BusTopicParams clientParams = new BusTopicParams();
     private static XacmlApplicationServiceProvider service;
     private static DecisionRequest requestVfCount;
     private static StandardCoder gson = new StandardCoder();
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
         //
         // Load Decision Requests
         //
 
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.TextFileUtils;
     private static final Logger LOGGER = LoggerFactory.getLogger(SonCoordinationTest.class);
     private static Properties properties = new Properties();
     private static File propertiesFile;
-    private static BusTopicParams clientParams = new BusTopicParams();
     private static XacmlApplicationServiceProvider service;
     private static DecisionRequest requestVpciNode1;
     private static DecisionRequest requestVsonhNode1;
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
         //
         // Load Decision Requests
         //
 
 
 import java.nio.file.Path;
 import java.util.Arrays;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.pdp.xacml.application.common.ToscaPolicyTranslator;
 import org.onap.policy.pdp.xacml.application.common.XacmlApplicationException;
     }
 
     @Override
-    public void initialize(Path pathForData, BusTopicParams policyApiParameters)
+    public void initialize(Path pathForData, HttpClient policyApiClient)
             throws XacmlApplicationException {
         //
         // Store our API parameters and path for translator so it
         // can go get Policy Types
         //
         this.translator.setPathForData(pathForData);
-        this.translator.setApiRestParameters(policyApiParameters);
+        this.translator.setApiClient(policyApiClient);
         //
         // Let our super class do its thing
         //
-        super.initialize(pathForData, policyApiParameters);
+        super.initialize(pathForData, policyApiClient);
     }
 
     @Override
 
 package org.onap.policy.xacml.pdp.application.match;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import com.att.research.xacml.api.Response;
 import java.io.File;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.ResourceUtils;
     private static XacmlApplicationServiceProvider service;
     private static StandardCoder gson = new StandardCoder();
     private static DecisionRequest baseRequest;
-    private static BusTopicParams clientParams;
 
     @ClassRule
     public static final TemporaryFolder policyFolder = new TemporaryFolder();
      */
     @BeforeClass
     public static void setUp() throws Exception {
-        clientParams = mock(BusTopicParams.class);
-        when(clientParams.getHostname()).thenReturn("localhost");
-        when(clientParams.getPort()).thenReturn(6969);
         //
         // Load Single Decision Request
         //
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
     }
 
     @Test
 
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.TextFileUtils;
     private static DecisionRequest requestPolicyType;
 
     private static StandardCoder gson = new StandardCoder();
-    private static BusTopicParams clientParams = new BusTopicParams();
 
     @ClassRule
     public static final TemporaryFolder policyFolder = new TemporaryFolder();
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
     }
 
     @Test
 
 package org.onap.policy.xacml.pdp.application.naming;
 
 import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import com.att.research.xacml.api.Response;
 import java.io.File;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.ResourceUtils;
     private static XacmlApplicationServiceProvider service;
     private static StandardCoder gson = new StandardCoder();
     private static DecisionRequest baseRequest;
-    private static BusTopicParams clientParams;
 
     @ClassRule
     public static final TemporaryFolder policyFolder = new TemporaryFolder();
      */
     @BeforeClass
     public static void setUp() throws Exception {
-        clientParams = mock(BusTopicParams.class);
-        when(clientParams.getHostname()).thenReturn("localhost");
-        when(clientParams.getPort()).thenReturn(6969);
         //
         // Load Single Decision Request
         //
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
     }
 
     @Test
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.StandardYamlCoder;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 import org.onap.policy.common.utils.resources.TextFileUtils;
     private static final StandardYamlCoder yamlCoder = new StandardYamlCoder();
     private static Properties properties = new Properties();
     private static File propertiesFile;
-    private static BusTopicParams clientParams = new BusTopicParams();
     private static NativePdpApplication service;
     private static Request request;
 
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
         //
         // Load XACML Request
         //
 
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.lang3.tuple.Pair;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.decisions.concepts.DecisionResponse;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
     }
 
     @Override
-    public void initialize(Path pathForData, BusTopicParams policyApiParameters)
+    public void initialize(Path pathForData, HttpClient policyApiClient)
             throws XacmlApplicationException {
         //
         // Store our API parameters and path for translator so it
         // can go get Policy Types
         //
         this.translator.setPathForData(pathForData);
-        this.translator.setApiRestParameters(policyApiParameters);
+        this.translator.setApiClient(policyApiClient);
         //
         // Let our super class do its thing
         //
-        super.initialize(pathForData, policyApiParameters);
+        super.initialize(pathForData, policyApiClient);
     }
 
     @Override
 
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
 
 import com.att.research.xacml.api.Response;
 import com.google.common.collect.Lists;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 import org.junit.runners.MethodSorters;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.coder.StandardYamlCoder;
     private static XacmlApplicationServiceProvider service;
     private static StandardCoder gson = new StandardCoder();
     private static DecisionRequest baseRequest;
-    private static BusTopicParams clientParams;
     private static String[] listPolicyTypeFiles = {
         "onap.policies.Optimization",
         "onap.policies.optimization.Resource",
      */
     @BeforeClass
     public static void setUp() throws Exception {
-        clientParams = mock(BusTopicParams.class);
-        when(clientParams.getHostname()).thenReturn("localhost");
-        when(clientParams.getPort()).thenReturn(6969);
         //
         // Load Single Decision Request
         //
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), clientParams);
+        service.initialize(propertiesFile.toPath().getParent(), null);
     }
 
     /**
 
 
 import lombok.Getter;
 import org.apache.commons.lang3.StringUtils;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
 import org.onap.policy.common.parameters.BeanValidationResult;
 @NotNull
 @NotBlank
 public class XacmlPdpParameterGroup extends ParameterGroupImpl {
-    private static final String PARAM_POLICY_API = "policyApiParameters";
+    public static final String PARAM_POLICY_API = "policyApiParameters";
 
     private String pdpGroup;
     private String pdpType;
     @Valid
     private RestServerParameters restServerParameters;
     @Valid
-    private BusTopicParams policyApiParameters;
+    private RestClientParameters policyApiParameters;
     @Valid
     private TopicParameterGroup topicParameterGroup;
     @Valid
      * @param pdpGroup the pdp group name
      */
     public XacmlPdpParameterGroup(final String name, final String pdpGroup, final String pdpType,
-            final RestServerParameters restServerParameters, final BusTopicParams policyApiParameters,
+            final RestServerParameters restServerParameters, final RestClientParameters policyApiParameters,
             final TopicParameterGroup topicParameterGroup, final XacmlApplicationParameters applicationParameters) {
         super(name);
         this.pdpGroup = pdpGroup;
 
 package org.onap.policy.pdpx.main.parameters;
 
 import java.io.File;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.parameters.ValidationResult;
 import org.onap.policy.common.utils.coder.Coder;
 import org.onap.policy.common.utils.coder.StandardCoder;
             throw new PolicyXacmlPdpException(errorMessage);
         }
 
+        RestClientParameters apiClientParams = xacmlPdpParameterGroup.getPolicyApiParameters();
+        apiClientParams.setName(XacmlPdpParameterGroup.PARAM_POLICY_API);
+        apiClientParams.setManaged(false);
+
         // validate the parameters
         final ValidationResult validationResult = xacmlPdpParameterGroup.validate();
         if (!validationResult.isValid()) {
 
 import java.util.stream.Collectors;
 import lombok.Getter;
 import lombok.Setter;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.models.decisions.concepts.DecisionRequest;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
 import org.onap.policy.models.tosca.authorative.concepts.ToscaPolicy;
      * One time to initialize the applications upon startup.
      */
     public XacmlPdpApplicationManager(XacmlApplicationParameters applicationParameters,
-            BusTopicParams policyApiParameters) {
+                    HttpClient policyApiClient) {
         if (LOGGER.isInfoEnabled()) {
-            LOGGER.info("Initialization applications {} {}", applicationParameters, policyApiParameters);
+            LOGGER.info("Initialization applications {} {}", applicationParameters, policyApiClient);
         }
         //
         // Load service
             //
             try {
                 initializeApplicationPath(Paths.get(applicationParameters.getApplicationPath()), application,
-                        policyApiParameters);
+                                policyApiClient);
                 //
                 // We are initialized
                 //
     }
 
     private void initializeApplicationPath(Path basePath, XacmlApplicationServiceProvider application,
-                    BusTopicParams policyApiParameters) throws XacmlApplicationException {
+                    HttpClient policyApiClient) throws XacmlApplicationException {
         //
         // Making an assumption that all application names are unique, and
         // they can result in a valid directory being created.
         //
         // Have the application initialize
         //
-        application.initialize(path, policyApiParameters);
+        application.initialize(path, policyApiClient);
     }
 }
 
 import org.onap.policy.common.endpoints.event.comm.TopicSource;
 import org.onap.policy.common.endpoints.event.comm.client.TopicSinkClient;
 import org.onap.policy.common.endpoints.event.comm.client.TopicSinkClientException;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
+import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
+import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
 import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.parameters.ParameterService;
 import org.onap.policy.common.utils.services.ServiceManagerContainer;
 import org.onap.policy.models.pdp.concepts.PdpStatus;
     public XacmlPdpActivator(final XacmlPdpParameterGroup xacmlPdpParameterGroup) {
         LOGGER.info("Activator initializing using {}", xacmlPdpParameterGroup);
 
+        RestClientParameters apiClientParams = xacmlPdpParameterGroup.getPolicyApiParameters();
+
         TopicEndpointManager.getManager().addTopics(xacmlPdpParameterGroup.getTopicParameterGroup());
 
         final XacmlPdpHearbeatPublisher heartbeat;
         final XacmlState state;
 
         try {
-            var appmgr =
-                            new XacmlPdpApplicationManager(xacmlPdpParameterGroup.getApplicationParameters(),
-                                    xacmlPdpParameterGroup.getPolicyApiParameters());
+            HttpClient apiClient = HttpClientFactoryInstance.getClientFactory().build(apiClientParams);
+
+            var appmgr = new XacmlPdpApplicationManager(xacmlPdpParameterGroup.getApplicationParameters(),
+                                            apiClient);
             XacmlPdpApplicationManager.setCurrent(appmgr);
 
             var stats = new XacmlPdpStatisticsManager();
             restServer = new XacmlPdpRestServer(xacmlPdpParameterGroup.getRestServerParameters(),
                     XacmlPdpAafFilter.class, XacmlPdpRestController.class);
 
-        } catch (RuntimeException | TopicSinkClientException e) {
+        } catch (RuntimeException | TopicSinkClientException | HttpClientConfigException e) {
             throw new PolicyXacmlPdpRuntimeException(e.getMessage(), e);
         }
 
 
  */
 public class CommonTestData {
 
+    private static final String CLIENT_NAME = "clientName";
     private static final String PASS_KEY = "password";
     private static final String USER_KEY = "userName";
     private static final String PORT_KEY = "port";
      */
     public Map<String, Object> getPolicyApiParametersMap(final boolean isEmpty) {
         final Map<String, Object> map = new TreeMap<>();
+        map.put(CLIENT_NAME, XacmlPdpParameterGroup.PARAM_POLICY_API);
         map.put(HTTPS_KEY, POLICY_API_HTTPS);
         map.put(AAF_KEY, POLICY_API_AAF);
 
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
 import org.onap.policy.common.parameters.ValidationResult;
     public void testXacmlPdpParameterGroup() throws IOException {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_NullParameterGroupName() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_EmptyParameterGroupName() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_NullPdpGroup() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_EmptyPdpGroup() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_EmptyRestServerParameters() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(true), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_EmptyPolicyApiParameters() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(true), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(true), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_EmptyTopicParameterGroup() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(true), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     public void testXacmlPdpParameterGroup_EmptyApplicationParameterGroup() {
         final RestServerParameters restServerParameters =
             testData.toObject(testData.getRestServerParametersMap(false), RestServerParameters.class);
-        final BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        final RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         final TopicParameterGroup topicParameterGroup =
             testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
 import org.onap.policy.common.endpoints.http.client.internal.JerseyClient;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
 import org.onap.policy.common.utils.coder.CoderException;
     private static File propertiesFile;
     private static XacmlApplicationServiceProvider service;
 
-    private static BusTopicParams policyApiParameters;
+    private static RestClientParameters policyApiParameters;
 
     @ClassRule
     public static final TemporaryFolder appsFolder = new TemporaryFolder();
         // Create parameters for XacmlPdPService
         RestServerParameters rest = testData.toObject(testData.getRestServerParametersMap(port),
                 RestServerParameters.class);
-        policyApiParameters = testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        policyApiParameters = testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         TopicParameterGroup topicParameterGroup = testData.toObject(testData.getTopicParametersMap(false),
                 TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
      */
     private static HttpClient getNoAuthHttpClient()
             throws HttpClientConfigException, KeyManagementException, NoSuchAlgorithmException, ClassNotFoundException {
-        BusTopicParams clientParams = new BusTopicParams();
+        RestClientParameters clientParams = new RestClientParameters();
         clientParams.setClientName("testName");
         clientParams.setUseHttps(false);
         clientParams.setAllowSelfSignedCerts(false);
         // Tell it to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), policyApiParameters);
+        service.initialize(propertiesFile.toPath().getParent(), null);
     }
 }
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.endpoints.http.client.HttpClient;
 import org.onap.policy.common.endpoints.http.client.HttpClientConfigException;
 import org.onap.policy.common.endpoints.http.client.HttpClientFactoryInstance;
+import org.onap.policy.common.endpoints.parameters.RestClientParameters;
 import org.onap.policy.common.endpoints.parameters.RestServerParameters;
 import org.onap.policy.common.endpoints.parameters.TopicParameterGroup;
 import org.onap.policy.common.utils.network.NetworkUtil;
         //
         RestServerParameters rest =
             testData.toObject(testData.getRestServerParametersMap(port), RestServerParameters.class);
-        BusTopicParams policyApiParameters =
-                        testData.toObject(testData.getPolicyApiParametersMap(false), BusTopicParams.class);
+        RestClientParameters policyApiParameters =
+                        testData.toObject(testData.getPolicyApiParametersMap(false), RestClientParameters.class);
         TopicParameterGroup topicParameterGroup =
                         testData.toObject(testData.getTopicParametersMap(false), TopicParameterGroup.class);
         final XacmlApplicationParameters xacmlApplicationParameters =
     }
 
     private static HttpClient getNoAuthHttpClient() throws HttpClientConfigException {
-        return HttpClientFactoryInstance.getClientFactory().build(BusTopicParams.builder()
+        return HttpClientFactoryInstance.getClientFactory().build(RestClientParameters.builder()
                 .clientName("testDecisionClient")
                 .useHttps(false).allowSelfSignedCerts(false).hostname("localhost").port(port)
                 .basePath("policy/pdpx/v1")
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardYamlCoder;
 import org.onap.policy.common.utils.resources.ResourceUtils;
 public class XacmlPdpApplicationManagerTest {
     private static final Logger LOGGER = LoggerFactory.getLogger(XacmlPdpApplicationManagerTest.class);
     private static final StandardYamlCoder yamlCoder = new StandardYamlCoder();
-    private static final BusTopicParams params = new BusTopicParams();
     private static Path appsDirectory;
     private static ToscaServiceTemplate completedJtst;
     private static CommonTestData testData = new CommonTestData();
      */
     @BeforeClass
     public static void setupTestEnvironment() throws Exception {
-        //
-        // No need to do more than this
-        //
-        params.setClientName("policyApiParameters");
         //
         // Load an example policy
         //
         //
         // Create our app manager
         //
-        XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, params);
+        XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, null);
         //
         // Still creates the manager, but the apps were not able to initialize
         //
         // Now create the directory
         //
         Files.createDirectory(nonExistentPath);
-        manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, params);
+        manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, null);
         //
         // Now it should have initialized the apps
         //
         final XacmlApplicationParameters xacmlApplicationParameters =
                 testData.toObject(testData.getXacmlapplicationParametersMap(false,
                         appsDirectory.toString(), exclusions), XacmlApplicationParameters.class);
-        XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, params);
+        XacmlPdpApplicationManager manager = new XacmlPdpApplicationManager(xacmlApplicationParameters, null);
         //
         // Test the basics from the startup
         //
 
 import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
-import org.onap.policy.common.endpoints.event.comm.bus.internal.BusTopicParams;
 import org.onap.policy.common.utils.coder.CoderException;
 import org.onap.policy.common.utils.coder.StandardCoder;
 import org.onap.policy.common.utils.resources.TextFileUtils;
         // Tell the application to initialize based on the properties file
         // we just built for it.
         //
-        service.initialize(propertiesFile.toPath().getParent(), new BusTopicParams());
+        service.initialize(propertiesFile.toPath().getParent(), null);
     }
 
     @Test