Change ActorService config to Map<String,Object> 45/102445/1
authorJim Hahn <jrh3@att.com>
Wed, 26 Feb 2020 22:14:34 +0000 (17:14 -0500)
committerJim Hahn <jrh3@att.com>
Wed, 26 Feb 2020 22:14:34 +0000 (17:14 -0500)
It's a bit of a pain to pass Map<String, Map<String,Object>> to
the ActorService configure() method.  Changed it to simply take
a Map<String,Object>, as it had been in a previous iteration.

Issue-ID: POLICY-1625
Signed-off-by: Jim Hahn <jrh3@att.com>
Change-Id: Ib6e703115027bc4919cc93762ca5b38d254f2b8f

models-interactions/model-actors/actor.test/src/main/java/org/onap/policy/controlloop/actor/test/BasicActor.java
models-interactions/model-actors/actorServiceProvider/src/main/java/org/onap/policy/controlloop/actorserviceprovider/ActorService.java
models-interactions/model-actors/actorServiceProvider/src/test/java/org/onap/policy/controlloop/actorserviceprovider/ActorServiceTest.java

index 1b11d0d..304d4cd 100644 (file)
@@ -164,7 +164,7 @@ public class BasicActor {
         private TopicParameterGroup topics;
 
         @NotNull
-        private Map<String, Map<String, Object>> actors;
+        private Map<String, Object> actors;
 
         /**
          * Validates the config.
index e1b875d..b0d70fd 100644 (file)
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
  * {@link #start()} to start all of the actors. When finished using the actor service,
  * invoke {@link #stop()} or {@link #shutdown()}.
  */
-public class ActorService extends StartConfigPartial<Map<String, Map<String, Object>>> {
+public class ActorService extends StartConfigPartial<Map<String, Object>> {
     private static final Logger logger = LoggerFactory.getLogger(ActorService.class);
 
     private final Map<String, Actor> name2actor;
@@ -115,16 +115,18 @@ public class ActorService extends StartConfigPartial<Map<String, Map<String, Obj
     }
 
     @Override
-    protected void doConfigure(Map<String, Map<String, Object>> parameters) {
+    protected void doConfigure(Map<String, Object> parameters) {
         logger.info("configuring actors");
 
         BeanValidationResult valres = new BeanValidationResult("ActorService", parameters);
 
         for (Actor actor : name2actor.values()) {
             String actorName = actor.getName();
-            Map<String, Object> subparams = parameters.get(actorName);
+            Object paramValue = parameters.get(actorName);
 
-            if (subparams != null) {
+            if (paramValue instanceof Map) {
+                @SuppressWarnings("unchecked")
+                Map<String, Object> subparams = (Map<String, Object>) paramValue;
 
                 try {
                     actor.configure(subparams);
index 989fc8d..401e0ca 100644 (file)
@@ -65,7 +65,7 @@ public class ActorServiceTest {
     private Map<String, Object> sub2;
     private Map<String, Object> sub3;
     private Map<String, Object> sub4;
-    private Map<String, Map<String, Object>> params;
+    private Map<String, Object> params;
 
     private ActorService service;