Enable TCAgen2 to policy flow
[dcaegen2/analytics/tca-gen2.git] / dcae-analytics / dcae-analytics-tca-web / src / main / java / org / onap / dcae / analytics / tca / web / TcaAppProperties.java
index fe905f4..0214a3d 100644 (file)
@@ -30,6 +30,11 @@ import org.onap.dcae.analytics.model.configbindingservice.BaseConfigBindingServi
 import org.onap.dcae.analytics.model.configbindingservice.ConfigBindingServiceConstants;
 import org.springframework.core.env.Environment;
 
+import com.google.gson.JsonArray;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+
 import lombok.Data;
 import lombok.ToString;
 
@@ -78,7 +83,7 @@ public class TcaAppProperties extends BaseConfigBindingServiceProperties {
 
     public Tca getTca() {
         Tca tca = new Tca();
-        tca.setPolicy(environment.getProperty(ConfigBindingServiceConstants.POLICY));
+        tca.setPolicy(getPolicy());
         tca.setProcessingBatchSize(environment.getProperty(ConfigBindingServiceConstants.PROCESSINGBATCHSIZE, Integer.class));
         tca.setEnableAbatement(environment.getProperty(ConfigBindingServiceConstants.ENABLEABATEMENT, Boolean.class));
         tca.setEnableEcompLogging(environment.getProperty(ConfigBindingServiceConstants.ENABLEECOMPLOGGING, Boolean.class));
@@ -95,6 +100,26 @@ public class TcaAppProperties extends BaseConfigBindingServiceProperties {
         return tca;
     }
 
+    /**
+     * Check policies items exist, and return policy.
+     * @return Policy policy
+     */
+    private String getPolicy() {
+
+        String policies = environment.getProperty(ConfigBindingServiceConstants.POLICIES);
+        if (policies == null) {
+            return environment.getProperty(ConfigBindingServiceConstants.POLICY);
+        }
+        JsonObject policiesObject = new JsonParser().parse(policies).getAsJsonObject();
+        JsonArray items = policiesObject.get(ConfigBindingServiceConstants.ITEMS).getAsJsonArray();
+        JsonElement policy = items.get(0)
+                                 .getAsJsonObject().get(ConfigBindingServiceConstants.CONFIG)
+                                 .getAsJsonObject().get(ConfigBindingServiceConstants.TCAPOLICY);
+
+        return policy.toString();
+
+    }
+
     @Override
     public Map<String, PublisherDetails> getStreamsPublishes() {
         DmaapInfo dmaapInfo = new DmaapInfo();