Enable MapperConfig to be reconfigurable 45/83345/2
authoremartin <ephraim.martin@est.tech>
Wed, 27 Mar 2019 15:07:27 +0000 (15:07 +0000)
committeremartin <ephraim.martin@est.tech>
Wed, 27 Mar 2019 15:07:27 +0000 (15:07 +0000)
Change-Id: Ifa4a186e85cb85758d70a9eb5437d9893f236427
Issue-ID: DCAEGEN2-1357
Signed-off-by: emartin <ephraim.martin@est.tech>
src/main/java/org/onap/dcaegen2/services/pmmapper/App.java
src/main/java/org/onap/dcaegen2/services/pmmapper/model/MapperConfig.java
src/test/java/org/onap/dcaegen2/services/pmmapper/config/DynamicConfigurationTest.java

index 03d42d5..b213a45 100644 (file)
@@ -95,6 +95,7 @@ public class App {
         dataRouterSubscriber.start();
         ArrayList<Configurable> configurables = new ArrayList<>();
         configurables.add(dataRouterSubscriber);
+        configurables.add(mapperConfig);
         DynamicConfiguration dynamicConfiguration = new DynamicConfiguration(configurables, mapperConfig);
 
         Undertow.builder()
index ffb09ba..bd4eafb 100644 (file)
@@ -22,6 +22,7 @@ package org.onap.dcaegen2.services.pmmapper.model;
 import java.net.MalformedURLException;\r
 import java.net.URL;\r
 \r
+import org.onap.dcaegen2.services.pmmapper.config.Configurable;\r
 import org.onap.dcaegen2.services.pmmapper.utils.GSONRequired;\r
 import com.google.gson.annotations.SerializedName;\r
 import lombok.Getter;\r
@@ -32,7 +33,7 @@ import lombok.NoArgsConstructor;
 @Getter\r
 @EqualsAndHashCode\r
 @NoArgsConstructor\r
-public class MapperConfig {\r
+public class MapperConfig implements Configurable{\r
 \r
     public static final String CLIENT_NAME = "pm-mapper";\r
 \r
@@ -161,4 +162,15 @@ public class MapperConfig {
 \r
     @SerializedName("pm-mapper-filter")\r
     MeasFilterConfig filterConfig;\r
+\r
+    @Override\r
+    public void reconfigure(MapperConfig mapperConfig) {\r
+        if(!this.equals(mapperConfig)) {\r
+            this.streamsSubscribes = mapperConfig.getStreamsSubscribes();\r
+            this.streamsPublishes = mapperConfig.getStreamsPublishes();\r
+            this.busControllerSubscriptionEndpoint = mapperConfig.getBusControllerSubscriptionEndpoint();\r
+            this.dmaapDRFeedId = mapperConfig.getDmaapDRFeedId();\r
+            this.dmaapDRDeleteEndpoint = mapperConfig.getDmaapDRDeleteEndpoint();\r
+        }\r
+    }\r
 }
\ No newline at end of file
index 67510da..8840825 100644 (file)
@@ -150,4 +150,20 @@ public class DynamicConfigurationTest {
         verify(configurable, times(1)).reconfigure(modifiedMapperConfig);
 
     }
+
+    @Test
+    public void testMapperConfigReconfiguration() throws Exception {
+        ConfigHandler configHandler = new ConfigHandler(sender);
+        JsonObject modifiedConfigJson = new JsonParser().parse(config).getAsJsonObject();
+        modifiedConfigJson.addProperty("dmaap_dr_delete_endpoint","http://modified-delete-endpoint/1");
+        String newConfig =  modifiedConfigJson.toString();
+
+        when(sender.send(any())).thenReturn(config,newConfig);
+
+        MapperConfig originalConfig = configHandler.getMapperConfig();
+        MapperConfig modifiedConfig = configHandler.getMapperConfig();
+
+        originalConfig.reconfigure(modifiedConfig);
+        assertEquals(originalConfig, modifiedConfig);
+    }
 }