X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=main%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fpdpx%2Fmain%2Fstartstop%2FXacmlPdpActivator.java;h=e7633674b675b41de97ccb0baafed0a4ef264907;hb=5ef7eae318606da6aacc455fed3d320e1e899a05;hp=2a881d45994eaa7cdeb27e94ac040b31d23178af;hpb=05045cd36ad264b5d7b674155699b2cccee71165;p=policy%2Fxacml-pdp.git diff --git a/main/src/main/java/org/onap/policy/pdpx/main/startstop/XacmlPdpActivator.java b/main/src/main/java/org/onap/policy/pdpx/main/startstop/XacmlPdpActivator.java index 2a881d45..e7633674 100644 --- a/main/src/main/java/org/onap/policy/pdpx/main/startstop/XacmlPdpActivator.java +++ b/main/src/main/java/org/onap/policy/pdpx/main/startstop/XacmlPdpActivator.java @@ -22,6 +22,7 @@ package org.onap.policy.pdpx.main.startstop; import java.nio.file.Paths; import java.util.Arrays; +import java.util.Collections; import java.util.Properties; import lombok.Getter; import lombok.Setter; @@ -31,9 +32,11 @@ 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.listeners.MessageTypeDispatcher; import org.onap.policy.common.parameters.ParameterService; +import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.common.utils.services.ServiceManagerContainer; import org.onap.policy.models.pdp.concepts.PdpStatus; import org.onap.policy.models.pdp.enums.PdpMessageType; +import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.pdpx.main.PolicyXacmlPdpRuntimeException; import org.onap.policy.pdpx.main.XacmlState; import org.onap.policy.pdpx.main.comm.XacmlPdpHearbeatPublisher; @@ -89,6 +92,8 @@ public class XacmlPdpActivator extends ServiceManagerContainer { TopicEndpoint.manager.addTopicSources(topicProperties); XacmlPdpHearbeatPublisher heartbeat; + TopicSinkClient sinkClient; + final XacmlState state; try { XacmlPdpApplicationManager appmgr = @@ -99,12 +104,12 @@ public class XacmlPdpActivator extends ServiceManagerContainer { XacmlPdpStatisticsManager.setCurrent(stats); stats.setTotalPolicyTypesCount(appmgr.getPolicyTypeCount()); - XacmlState state = new XacmlState(appmgr); + state = new XacmlState(appmgr); this.xacmlPdpParameterGroup = xacmlPdpParameterGroup; this.msgDispatcher = new MessageTypeDispatcher(MSG_TYPE_NAMES); - TopicSinkClient sinkClient = new TopicSinkClient(TOPIC); + sinkClient = new TopicSinkClient(TOPIC); heartbeat = new XacmlPdpHearbeatPublisher(sinkClient, state); /* @@ -135,6 +140,9 @@ public class XacmlPdpActivator extends ServiceManagerContainer { TopicEndpoint.manager::start, TopicEndpoint.manager::shutdown); + addAction("Terminate PDP", + () -> { }, + () -> sendTerminateMessage(sinkClient, state)); // initial heart beats act as registration messages addAction("Heartbeat Publisher", heartbeat::start, @@ -147,9 +155,18 @@ public class XacmlPdpActivator extends ServiceManagerContainer { addAction("REST server", () -> restServer.start(), () -> restServer.stop()); + // @formatter:on } + /* + * Method used to send a terminate message to the PAP. + */ + private void sendTerminateMessage(TopicSinkClient sinkClient, XacmlState state) { + PdpStatus terminateStatus = state.terminatePdpMessage(); + sinkClient.send(terminateStatus); + } + /** * Get the parameters used by the activator. *