diff --git a/api-catalog-services/src/main/java/com/ca/mfaas/apicatalog/ApiCatalogApplication.java b/api-catalog-services/src/main/java/com/ca/mfaas/apicatalog/ApiCatalogApplication.java index 3d9ed286ba..2c271fa64e 100644 --- a/api-catalog-services/src/main/java/com/ca/mfaas/apicatalog/ApiCatalogApplication.java +++ b/api-catalog-services/src/main/java/com/ca/mfaas/apicatalog/ApiCatalogApplication.java @@ -10,6 +10,7 @@ package com.ca.mfaas.apicatalog; import com.ca.mfaas.enable.EnableApiDiscovery; +import com.ca.mfaas.monitoring.LatencyUtilsConfigInitializer; import com.ca.mfaas.product.service.BuildInfo; import com.ca.mfaas.product.service.ServiceStartupEventHandler; import org.springframework.boot.SpringApplication; @@ -39,6 +40,7 @@ public class ApiCatalogApplication implements ApplicationListener { + private final String PROPERTY_KEY = "LatencyUtils.useActualTime"; + @Override + public void initialize(ConfigurableApplicationContext applicationContext) { + if (System.getProperties().getProperty(PROPERTY_KEY) == null) + System.getProperties().setProperty(PROPERTY_KEY, "false"); + } +} diff --git a/common-service-core/src/test/java/com/ca/mfaas/monitoring/LatencyUtilsConfigInitializerTest.java b/common-service-core/src/test/java/com/ca/mfaas/monitoring/LatencyUtilsConfigInitializerTest.java new file mode 100644 index 0000000000..9140d1ea9d --- /dev/null +++ b/common-service-core/src/test/java/com/ca/mfaas/monitoring/LatencyUtilsConfigInitializerTest.java @@ -0,0 +1,44 @@ +/* + * This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-v20.html + * + * SPDX-License-Identifier: EPL-2.0 + * + * Copyright Contributors to the Zowe Project. + */ + +package com.ca.mfaas.monitoring; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class LatencyUtilsConfigInitializerTest { + private final String PROPERTY_KEY = "LatencyUtils.useActualTime"; + + @Test + public void ShouldSetSystemPropertyWhenPropertyNotSet() { + System.getProperties().remove(PROPERTY_KEY); + assertNull( System.getProperties().getProperty(PROPERTY_KEY) ); + + LatencyUtilsConfigInitializer latencyUtilsConfigInitializer = new LatencyUtilsConfigInitializer(); + latencyUtilsConfigInitializer.initialize(null); + + assertEquals(System.getProperties().getProperty(PROPERTY_KEY),"false"); + } + + @Test + public void ShouldNotSetSystemPropertyWhenPropertyIsSetFromBefore() { + System.getProperties().remove(PROPERTY_KEY); + String value = "RandomValue"; + System.getProperties().setProperty(PROPERTY_KEY, value); + assertEquals( System.getProperties().getProperty(PROPERTY_KEY), value ); + + LatencyUtilsConfigInitializer latencyUtilsConfigInitializer = new LatencyUtilsConfigInitializer(); + latencyUtilsConfigInitializer.initialize(null); + + assertEquals( System.getProperties().getProperty(PROPERTY_KEY), value ); + } + +} diff --git a/discoverable-client/src/main/java/com/ca/mfaas/client/DiscoverableClientSampleApplication.java b/discoverable-client/src/main/java/com/ca/mfaas/client/DiscoverableClientSampleApplication.java index 78509a710e..80f6964a2d 100644 --- a/discoverable-client/src/main/java/com/ca/mfaas/client/DiscoverableClientSampleApplication.java +++ b/discoverable-client/src/main/java/com/ca/mfaas/client/DiscoverableClientSampleApplication.java @@ -10,6 +10,7 @@ package com.ca.mfaas.client; import com.ca.mfaas.enable.EnableApiDiscovery; +import com.ca.mfaas.monitoring.LatencyUtilsConfigInitializer; import com.ca.mfaas.product.service.BuildInfo; import com.ca.mfaas.product.service.ServiceStartupEventHandler; import org.springframework.boot.SpringApplication; @@ -30,6 +31,7 @@ public class DiscoverableClientSampleApplication implements ApplicationListener< public static void main(String[] args) { SpringApplication app = new SpringApplication(DiscoverableClientSampleApplication.class); + app.addInitializers(new LatencyUtilsConfigInitializer()); app.setLogStartupInfo(false); new BuildInfo().logBuildInfo(); app.run(args); diff --git a/discovery-service/src/main/java/com/ca/mfaas/discovery/DiscoveryServiceApplication.java b/discovery-service/src/main/java/com/ca/mfaas/discovery/DiscoveryServiceApplication.java index 91c6ea602c..ac31e59367 100644 --- a/discovery-service/src/main/java/com/ca/mfaas/discovery/DiscoveryServiceApplication.java +++ b/discovery-service/src/main/java/com/ca/mfaas/discovery/DiscoveryServiceApplication.java @@ -9,6 +9,7 @@ */ package com.ca.mfaas.discovery; +import com.ca.mfaas.monitoring.LatencyUtilsConfigInitializer; import com.ca.mfaas.product.service.BuildInfo; import com.ca.mfaas.product.service.ServiceStartupEventHandler; import org.springframework.boot.SpringApplication; @@ -28,6 +29,7 @@ public class DiscoveryServiceApplication implements ApplicationListener { public static void main(String[] args) { SpringApplication app = new SpringApplication(GatewayApplication.class); + app.addInitializers(new LatencyUtilsConfigInitializer()); app.setLogStartupInfo(false); new BuildInfo().logBuildInfo(); app.run(args);