X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=models-sim%2Fpolicy-models-simulators%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fsimulators%2FMain.java;fp=models-sim%2Fpolicy-models-simulators%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fpolicy%2Fmodels%2Fsimulators%2FMain.java;h=b1ee739428a28ee418d1aa61b2384c4a0c5ea84b;hb=49f07db935d114b72a44e446867b16262dd552aa;hp=a501d52535e078c30b3a99299a3abadf3b44d4cb;hpb=71be21fd5b9b52c613bb855f00a79a51e81906dd;p=policy%2Fmodels.git diff --git a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java index a501d5253..b1ee73942 100644 --- a/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java +++ b/models-sim/policy-models-simulators/src/main/java/org/onap/policy/models/simulators/Main.java @@ -24,21 +24,13 @@ 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; -import java.util.Map; import java.util.Properties; import java.util.concurrent.atomic.AtomicReference; import lombok.AccessLevel; import lombok.Getter; import org.apache.commons.lang3.StringUtils; -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.server.HttpServletServer; import org.onap.policy.common.endpoints.http.server.HttpServletServerFactoryInstance; -import org.onap.policy.common.endpoints.parameters.TopicParameters; import org.onap.policy.common.endpoints.properties.PolicyEndPointProperties; import org.onap.policy.common.gson.GsonMessageBodyHandler; import org.onap.policy.common.parameters.BeanValidationResult; @@ -49,12 +41,7 @@ import org.onap.policy.common.utils.network.NetworkUtil; import org.onap.policy.common.utils.resources.ResourceUtils; import org.onap.policy.common.utils.services.Registry; import org.onap.policy.common.utils.services.ServiceManagerContainer; -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; @@ -79,21 +66,7 @@ public class Main extends ServiceManagerContainer { super(Main.class.getPackage().getName()); SimulatorParameters params = readParameters(paramFile); - BeanValidationResult result = params.validate("simulators"); - if (!result.isValid()) { - logger.error("invalid parameters:\n{}", result.getResult()); - throw new IllegalArgumentException("invalid simulator parameters"); - } - - DmaapSimParameterGroup dmaapProv = params.getDmaapProvider(); - String dmaapName = (dmaapProv != null ? dmaapProv.getName() : null); - - // dmaap provider - if (dmaapProv != null) { - String provName = dmaapName.replace("simulator", "provider"); - AtomicReference provRef = new AtomicReference<>(); - addAction(provName, () -> provRef.set(buildDmaapProvider(dmaapProv)), () -> provRef.get().shutdown()); - } + String messageBroker = "models-sim"; CdsServerParameters cdsServer = params.getGrpcServer(); @@ -114,35 +87,7 @@ public class Main extends ServiceManagerContainer { () -> Registry.unregister(resourceLocationId)); } addAction(restsim.getName(), - () -> ref.set(buildRestServer(dmaapName, restsim)), - () -> ref.get().shutdown()); - } - - // NOTE: topics must be started AFTER the (dmaap) rest servers - - // topic sinks - Map sinks = new HashMap<>(); - for (TopicParameters topicParams : params.getTopicSinks()) { - String topic = topicParams.getTopic(); - addAction("Sink " + topic, - () -> sinks.put(topic, startSink(topicParams)), - () -> sinks.get(topic).shutdown()); - } - - // topic sources - Map sources = new HashMap<>(); - for (TopicParameters topicParams : params.getTopicSources()) { - String topic = topicParams.getTopic(); - addAction("Source " + topic, - () -> sources.put(topic, startSource(topicParams)), - () -> sources.get(topic).shutdown()); - } - - // topic server simulators - for (TopicServerParameters topicsim : params.getTopicServers()) { - AtomicReference> ref = new AtomicReference<>(); - addAction(topicsim.getName(), - () -> ref.set(buildTopicServer(topicsim, sinks, sources)), + () -> ref.set(buildRestServer(messageBroker, restsim)), () -> ref.get().shutdown()); } // @formatter:on @@ -191,13 +136,6 @@ public class Main extends ServiceManagerContainer { } } - private DmaapSimProvider buildDmaapProvider(DmaapSimParameterGroup params) { - var prov = new DmaapSimProvider(params); - DmaapSimProvider.setInstance(prov); - prov.start(); - return prov; - } - private CdsSimulator buildCdsSimulator(CdsServerParameters params) throws IOException { var cdsSimulator = new CdsSimulator(params.getHost(), params.getPort(), params.getResourceLocation(), params.getSuccessRepeatCount(), params.getRequestedResponseDelayMs()); @@ -206,21 +144,9 @@ public class Main extends ServiceManagerContainer { } - private TopicSink startSink(TopicParameters params) { - TopicSink sink = TopicEndpointManager.getManager().addTopicSinks(List.of(params)).get(0); - sink.start(); - return sink; - } - - private TopicSource startSource(TopicParameters params) { - TopicSource source = TopicEndpointManager.getManager().addTopicSources(List.of(params)).get(0); - source.start(); - return source; - } - - private HttpServletServer buildRestServer(String dmaapName, ClassRestServerParameters params) { + private HttpServletServer buildRestServer(String messageBroker, ClassRestServerParameters params) { try { - var props = getServerProperties(dmaapName, params); + var props = getServerProperties(messageBroker, params); HttpServletServer testServer = makeServer(props); testServer.waitedStart(5000); @@ -239,30 +165,6 @@ public class Main extends ServiceManagerContainer { } } - private TopicServer buildTopicServer(TopicServerParameters params, Map sinks, - Map sources) { - try { - // find the desired sink - TopicSink sink = sinks.get(params.getSink()); - if (sink == null) { - throw new IllegalArgumentException("invalid sink topic " + params.getSink()); - } - - // find the desired source - TopicSource source = sources.get(params.getSource()); - if (source == null) { - throw new IllegalArgumentException("invalid source topic " + params.getSource()); - } - - // create the topic server - return (TopicServer) Class.forName(params.getProviderClass()) - .getDeclaredConstructor(TopicSink.class, TopicSource.class).newInstance(sink, source); - - } catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException - | SecurityException | ClassNotFoundException e) { - throw new IllegalArgumentException("cannot create TopicServer: " + params.getName(), e); - } - } /** * Creates a set of properties, suitable for building a REST server, from the @@ -271,7 +173,7 @@ public class Main extends ServiceManagerContainer { * @param params parameters from which to build the properties * @return a Map of properties representing the given parameters */ - private static Properties getServerProperties(String dmaapName, ClassRestServerParameters params) { + private static Properties getServerProperties(String messageBroker, ClassRestServerParameters params) { final var props = new Properties(); props.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES, params.getName()); @@ -290,15 +192,9 @@ public class Main extends ServiceManagerContainer { props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SNI_HOST_CHECK_SUFFIX, "false"); props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); - if (dmaapName != null && dmaapName.equals(params.getName())) { - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, - String.join(",", CambriaMessageBodyHandler.class.getName(), - GsonMessageBodyHandler.class.getName(), - TextMessageBodyHandler.class.getName())); - } else { - props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, String.join(",", + props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, String.join(",", GsonMessageBodyHandler.class.getName(), TextMessageBodyHandler.class.getName())); - } + return props; }