summaryrefslogtreecommitdiffstats
path: root/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java')
-rw-r--r--policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java42
1 files changed, 34 insertions, 8 deletions
diff --git a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
index 0edb06f8..95ee88cb 100644
--- a/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
+++ b/policy-management/src/main/java/org/onap/policy/drools/system/PolicyEngineManager.java
@@ -36,6 +36,7 @@ import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.atomic.AtomicReference;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
+import java.util.stream.Collectors;
import java.util.stream.Stream;
import lombok.AccessLevel;
import lombok.Getter;
@@ -47,6 +48,9 @@ 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.TopicSink;
import org.onap.policy.common.endpoints.event.comm.TopicSource;
+import org.onap.policy.common.endpoints.http.client.HttpClient;
+import org.onap.policy.common.endpoints.http.client.HttpClientFactory;
+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.HttpServletServerFactory;
import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance;
@@ -588,12 +592,21 @@ class PolicyEngineManager implements PolicyEngine {
success.set(false);
}
- /* Start Policy Engine exclusively-owned (unmanaged) http servers */
+ /* Start managed and unmanaged http servers */
- attempt(success, this.httpServers,
+ attempt(success,
+ Stream.concat(getServletFactory().inventory().stream(), this.httpServers.stream())
+ .collect(Collectors.toList()),
httpServer -> httpServer.waitedStart(10 * 1000L),
- (item, ex) -> logger.error("{}: cannot start http-server {} because of {}",
- this, item, ex.getMessage(), ex));
+ (item, ex) -> logger.error("{}: cannot start http-server {} because of {}", this, item,
+ ex.getMessage(), ex));
+
+ /* Start managed Http Clients */
+
+ attempt(success, getHttpClientFactory().inventory(),
+ HttpClient::start,
+ (item, ex) -> logger.error("{}: cannot start http-client {} because of {}",
+ this, item, ex.getMessage(), ex));
/* Start Policy Controllers */
@@ -615,7 +628,6 @@ class PolicyEngineManager implements PolicyEngine {
logger.warn("{}: Topic Endpoint Manager is in an invalid state because of {}", this, e.getMessage(), e);
}
-
// Start the JMX listener
startPdpJmxListener();
@@ -722,11 +734,20 @@ class PolicyEngineManager implements PolicyEngine {
success.set(false);
}
- /* stop all unmanaged http servers */
- attempt(success, this.httpServers,
+ /* stop all managed and unmanaged http servers */
+ attempt(success,
+ Stream.concat(getServletFactory().inventory().stream(), this.httpServers.stream())
+ .collect(Collectors.toList()),
HttpServletServer::stop,
(item, ex) -> logger.error("{}: cannot stop http-server {} because of {}", this, item,
- ex.getMessage(), ex));
+ ex.getMessage(), ex));
+
+ /* stop all managed http clients */
+ attempt(success,
+ getHttpClientFactory().inventory(),
+ HttpClient::stop,
+ (item, ex) -> logger.error("{}: cannot stop http-client {} because of {}", this, item,
+ ex.getMessage(), ex));
try {
success.compareAndSet(true, this.lockManager.stop());
@@ -783,6 +804,7 @@ class PolicyEngineManager implements PolicyEngine {
getControllerFactory().shutdown();
getTopicEndpointManager().shutdown();
getServletFactory().destroy();
+ getHttpClientFactory().destroy();
try {
this.lockManager.shutdown();
@@ -1341,6 +1363,10 @@ class PolicyEngineManager implements PolicyEngine {
return HttpServletServerFactoryInstance.getServerFactory();
}
+ protected HttpClientFactory getHttpClientFactory() {
+ return HttpClientFactoryInstance.getClientFactory();
+ }
+
protected PolicyControllerFactory getControllerFactory() {
return PolicyControllerConstants.getFactory();
}