Enhance gRPC Simulator:
[policy/models.git] / models-sim / policy-models-simulators / src / main / java / org / onap / policy / models / simulators / Main.java
index ed9ade5..a0fafbc 100644 (file)
@@ -1,6 +1,7 @@
 /*-
  * ============LICENSE_START=======================================================
  * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved.
+ * Modifications Copyright (C) 2020 Bell Canada. All rights reserved.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -21,6 +22,7 @@
 package org.onap.policy.models.simulators;
 
 import java.io.FileNotFoundException;
+import java.io.IOException;
 import java.lang.reflect.InvocationTargetException;
 import java.util.HashMap;
 import java.util.List;
@@ -48,6 +50,7 @@ import org.onap.policy.models.sim.dmaap.parameters.DmaapSimParameterGroup;
 import org.onap.policy.models.sim.dmaap.provider.DmaapSimProvider;
 import org.onap.policy.models.sim.dmaap.rest.CambriaMessageBodyHandler;
 import org.onap.policy.models.sim.dmaap.rest.TextMessageBodyHandler;
+import org.onap.policy.simulators.CdsSimulator;
 import org.onap.policy.simulators.TopicServer;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -87,6 +90,12 @@ public class Main extends ServiceManagerContainer {
         AtomicReference<DmaapSimProvider> provRef = new AtomicReference<>();
         addAction(provName, () -> provRef.set(buildDmaapProvider(dmaapProv)), () -> provRef.get().shutdown());
 
+        CdsServerParameters cdsServer = params.getGrpcServer();
+
+        // Cds Simulator
+        AtomicReference<CdsSimulator> cdsSim = new AtomicReference<>();
+        addAction(cdsServer.getName(), () -> cdsSim.set(buildCdsSimulator(cdsServer)), () -> cdsSim.get().stop());
+
         // REST server simulators
         // @formatter:off
         for (ClassRestServerParameters restsim : params.getRestServers()) {
@@ -173,10 +182,17 @@ public class Main extends ServiceManagerContainer {
         DmaapSimProvider prov = new DmaapSimProvider(params);
         DmaapSimProvider.setInstance(prov);
         prov.start();
-
         return prov;
     }
 
+    private CdsSimulator buildCdsSimulator(CdsServerParameters params) throws IOException {
+        CdsSimulator cdsSimulator = new CdsSimulator(params.getHost(), params.getPort(), params.getResourceLocation(),
+            params.getSuccessRepeatCount(), params.getRequestedResponseDelayMs());
+        cdsSimulator.start();
+        return cdsSimulator;
+    }
+
+
     private TopicSink startSink(TopicParameters params) {
         TopicSink sink = TopicEndpointManager.getManager().addTopicSinks(List.of(params)).get(0);
         sink.start();