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;h=a501d52535e078c30b3a99299a3abadf3b44d4cb;hb=71be21fd5b9b52c613bb855f00a79a51e81906dd;hp=a0fafbc9b2555b0584fecaf0d8ee569c70b3c99c;hpb=e6c06754e2edd4a5ff108983828a2dbb15739a2e;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 a0fafbc9b..a501d5253 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 @@ -1,7 +1,8 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * Modifications Copyright (C) 2020 Bell Canada. All rights reserved. + * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. + * Modifications Copyright (C) 2020-2021 Bell Canada. All rights reserved. + * Modifications Copyright 2023-2024 Nordix Foundation. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -31,6 +32,7 @@ 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; @@ -45,6 +47,7 @@ import org.onap.policy.common.utils.coder.CoderException; import org.onap.policy.common.utils.coder.StandardCoder; 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; @@ -83,23 +86,33 @@ public class Main extends ServiceManagerContainer { } DmaapSimParameterGroup dmaapProv = params.getDmaapProvider(); - String dmaapName = dmaapProv.getName(); - String provName = dmaapName.replace("simulator", "provider"); + String dmaapName = (dmaapProv != null ? dmaapProv.getName() : null); // dmaap provider - AtomicReference provRef = new AtomicReference<>(); - addAction(provName, () -> provRef.set(buildDmaapProvider(dmaapProv)), () -> provRef.get().shutdown()); + if (dmaapProv != null) { + String provName = dmaapName.replace("simulator", "provider"); + AtomicReference provRef = new AtomicReference<>(); + addAction(provName, () -> provRef.set(buildDmaapProvider(dmaapProv)), () -> provRef.get().shutdown()); + } CdsServerParameters cdsServer = params.getGrpcServer(); // Cds Simulator - AtomicReference cdsSim = new AtomicReference<>(); - addAction(cdsServer.getName(), () -> cdsSim.set(buildCdsSimulator(cdsServer)), () -> cdsSim.get().stop()); + if (cdsServer != null) { + AtomicReference cdsSim = new AtomicReference<>(); + addAction(cdsServer.getName(), () -> cdsSim.set(buildCdsSimulator(cdsServer)), () -> cdsSim.get().stop()); + } // REST server simulators // @formatter:off for (ClassRestServerParameters restsim : params.getRestServers()) { AtomicReference ref = new AtomicReference<>(); + if (StringUtils.isNotBlank(restsim.getResourceLocation())) { + String resourceLocationId = restsim.getProviderClass() + "_RESOURCE_LOCATION"; + addAction(resourceLocationId, + () -> Registry.register(resourceLocationId, restsim.getResourceLocation()), + () -> Registry.unregister(resourceLocationId)); + } addAction(restsim.getName(), () -> ref.set(buildRestServer(dmaapName, restsim)), () -> ref.get().shutdown()); @@ -161,7 +174,7 @@ public class Main extends ServiceManagerContainer { private SimulatorParameters readParameters(String paramFile) { try { - String paramsJson = getResourceAsString(paramFile); + var paramsJson = getResourceAsString(paramFile); if (paramsJson == null) { throw new IllegalArgumentException(new FileNotFoundException(paramFile)); } @@ -179,14 +192,14 @@ public class Main extends ServiceManagerContainer { } private DmaapSimProvider buildDmaapProvider(DmaapSimParameterGroup params) { - DmaapSimProvider prov = new DmaapSimProvider(params); + var 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(), + var cdsSimulator = new CdsSimulator(params.getHost(), params.getPort(), params.getResourceLocation(), params.getSuccessRepeatCount(), params.getRequestedResponseDelayMs()); cdsSimulator.start(); return cdsSimulator; @@ -207,7 +220,7 @@ public class Main extends ServiceManagerContainer { private HttpServletServer buildRestServer(String dmaapName, ClassRestServerParameters params) { try { - Properties props = getServerProperties(dmaapName, params); + var props = getServerProperties(dmaapName, params); HttpServletServer testServer = makeServer(props); testServer.waitedStart(5000); @@ -256,10 +269,10 @@ public class Main extends ServiceManagerContainer { * parameters. * * @param params parameters from which to build the properties - * @return a set of properties representing the given parameters + * @return a Map of properties representing the given parameters */ private static Properties getServerProperties(String dmaapName, ClassRestServerParameters params) { - final Properties props = new Properties(); + final var props = new Properties(); props.setProperty(PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES, params.getName()); final String svcpfx = PolicyEndPointProperties.PROPERTY_HTTP_SERVER_SERVICES + "." + params.getName(); @@ -274,9 +287,10 @@ public class Main extends ServiceManagerContainer { params.getProviderClass()); props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "false"); props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SWAGGER_SUFFIX, "false"); + props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SNI_HOST_CHECK_SUFFIX, "false"); props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_MANAGED_SUFFIX, "true"); - if (dmaapName.equals(params.getName())) { + if (dmaapName != null && dmaapName.equals(params.getName())) { props.setProperty(svcpfx + PolicyEndPointProperties.PROPERTY_HTTP_SERIALIZATION_PROVIDER, String.join(",", CambriaMessageBodyHandler.class.getName(), GsonMessageBodyHandler.class.getName(),