import java.nio.file.Paths;
import java.util.Arrays;
+import java.util.Collections;
import java.util.Properties;
import lombok.Getter;
import lombok.Setter;
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;
TopicEndpoint.manager.addTopicSources(topicProperties);
XacmlPdpHearbeatPublisher heartbeat;
+ TopicSinkClient sinkClient;
+ final XacmlState state;
try {
XacmlPdpApplicationManager appmgr =
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);
/*
TopicEndpoint.manager::start,
TopicEndpoint.manager::shutdown);
+ addAction("Terminate PDP",
+ () -> { },
+ () -> sendTerminateMessage(sinkClient, state));
// initial heart beats act as registration messages
addAction("Heartbeat Publisher",
heartbeat::start,
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.
*