import java.nio.file.Paths;
import java.util.Arrays;
-import java.util.Properties;
import lombok.Getter;
import lombok.Setter;
-import org.onap.policy.common.endpoints.event.comm.TopicEndpoint;
+import org.onap.policy.common.endpoints.event.comm.TopicEndpointManager;
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.server.RestServer;
import org.onap.policy.common.endpoints.listeners.MessageTypeDispatcher;
import org.onap.policy.common.parameters.ParameterService;
import org.onap.policy.common.utils.services.ServiceManagerContainer;
import org.onap.policy.pdpx.main.comm.listeners.XacmlPdpStateChangeListener;
import org.onap.policy.pdpx.main.comm.listeners.XacmlPdpUpdateListener;
import org.onap.policy.pdpx.main.parameters.XacmlPdpParameterGroup;
+import org.onap.policy.pdpx.main.rest.XacmlPdpAafFilter;
import org.onap.policy.pdpx.main.rest.XacmlPdpApplicationManager;
-import org.onap.policy.pdpx.main.rest.XacmlPdpRestServer;
+import org.onap.policy.pdpx.main.rest.XacmlPdpRestController;
import org.onap.policy.pdpx.main.rest.XacmlPdpStatisticsManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// The parameters of this policy xacml pdp activator
private final XacmlPdpParameterGroup xacmlPdpParameterGroup;
- /**
- * The XACML PDP REST API server.
- */
- private XacmlPdpRestServer restServer;
-
/**
* Listens for messages on the topic, decodes them into a {@link PdpStatus} message, and then
* dispatches them to appropriate listener.
* Instantiate the activator for policy xacml pdp as a complete service.
*
* @param xacmlPdpParameterGroup the parameters for the xacml pdp service
- * @param topicProperties properties used to configure the topics
*/
- public XacmlPdpActivator(final XacmlPdpParameterGroup xacmlPdpParameterGroup, Properties topicProperties) {
- LOGGER.info("Activator initializing using {} and {}", xacmlPdpParameterGroup, topicProperties);
+ public XacmlPdpActivator(final XacmlPdpParameterGroup xacmlPdpParameterGroup) {
+ LOGGER.info("Activator initializing using {}", xacmlPdpParameterGroup);
- TopicEndpoint.manager.addTopicSinks(topicProperties);
- TopicEndpoint.manager.addTopicSources(topicProperties);
+ TopicEndpointManager.getManager().addTopics(xacmlPdpParameterGroup.getTopicParameterGroup());
final XacmlPdpHearbeatPublisher heartbeat;
final TopicSinkClient sinkClient;
final XacmlState state;
+ final RestServer restServer;
try {
XacmlPdpApplicationManager appmgr =
msgDispatcher.register(PdpMessageType.PDP_UPDATE.name(),
new XacmlPdpUpdateListener(sinkClient, state, heartbeat, appmgr));
+ restServer = new RestServer(xacmlPdpParameterGroup.getRestServerParameters(), XacmlPdpAafFilter.class,
+ XacmlPdpRestController.class);
+
} catch (RuntimeException | TopicSinkClientException e) {
throw new PolicyXacmlPdpRuntimeException(e.getMessage(), e);
}
this::unregisterMsgDispatcher);
addAction("topics",
- TopicEndpoint.manager::start,
- TopicEndpoint.manager::shutdown);
+ TopicEndpointManager.getManager()::start,
+ TopicEndpointManager.getManager()::shutdown);
addAction("Terminate PDP",
() -> { },
heartbeat::start,
heartbeat::terminate);
- addAction("Create REST server",
- () -> restServer = new XacmlPdpRestServer(xacmlPdpParameterGroup.getRestServerParameters()),
- () -> restServer = null);
-
addAction("REST server",
- () -> restServer.start(),
- () -> restServer.stop());
+ restServer::start,
+ restServer::stop);
// @formatter:on
}
* Registers the dispatcher with the topic source(s).
*/
private void registerMsgDispatcher() {
- for (TopicSource source : TopicEndpoint.manager.getTopicSources(Arrays.asList(TOPIC))) {
+ for (TopicSource source : TopicEndpointManager.getManager().getTopicSources(Arrays.asList(TOPIC))) {
source.register(msgDispatcher);
}
}
* Unregisters the dispatcher from the topic source(s).
*/
private void unregisterMsgDispatcher() {
- for (TopicSource source : TopicEndpoint.manager.getTopicSources(Arrays.asList(TOPIC))) {
+ for (TopicSource source : TopicEndpointManager.getManager().getTopicSources(Arrays.asList(TOPIC))) {
source.unregister(msgDispatcher);
}
}