Changes made to upgrade pom version
[portal.git] / ecomp-portal-BE-common / src / main / java / org / onap / portalapp / portal / controller / WebAnalyticsExtAppController.java
index f1192f9..92449a3 100644 (file)
@@ -55,7 +55,7 @@ import org.onap.portalapp.portal.logging.aop.EPAuditLog;
 import org.onap.portalapp.portal.logging.aop.EPEELFLoggerAdvice;
 import org.onap.portalapp.portal.logging.logic.EPLogUtil;
 import org.onap.portalapp.portal.service.AppsCacheService;
-import org.onap.portalapp.portal.service.ConsulHealthService;
+import org.onap.portalapp.portal.service.WidgetMService;
 import org.onap.portalapp.portal.transport.Analytics;
 import org.onap.portalapp.portal.utils.EPCommonSystemProperties;
 import org.onap.portalapp.portal.utils.EcompPortalUtils;
@@ -89,22 +89,23 @@ import org.springframework.web.client.AsyncRestTemplate;
 @EPAuditLog
 @NoArgsConstructor
 public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseController {
-       private ConsulHealthService consulHealthService;
+       public static final String FEED_ML = "feed.ml";
+       private WidgetMService widgetMService;
        private AppsCacheService appCacheService;
 
        private static final String MACHINE_LEARNING_SERVICE_CTX = "/ml_api";
        private static final String REGISTER_ACTION = MACHINE_LEARNING_SERVICE_CTX + "/" + "registerAction";
-       private static final String CONSUL_ML_SERVICE_ID = "machine-learning";
        private static final String APP_KEY = "uebkey";
+       private static final String ERROR_MSG = " Error retrieving Application to capture app name for analytics; Proceeding with empty app name";
        private final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WebAnalyticsExtAppController.class);
        private final AsyncRestTemplate restTemplate = new AsyncRestTemplate();
        private final SuccessCallback<ResponseEntity<String>> successCallback = arg -> logger.info(EELFLoggerDelegate.debugLogger, arg.getBody());
        private final FailureCallback failureCallback = arg -> logger.error(EELFLoggerDelegate.errorLogger, "storeAuxAnalytics failed", arg);
 
        @Autowired
-       public WebAnalyticsExtAppController(AppsCacheService appCacheService, ConsulHealthService consulHealthService) {
+       public WebAnalyticsExtAppController(AppsCacheService appCacheService, WidgetMService consulHealthService) {
                this.appCacheService = appCacheService;
-               this.consulHealthService = consulHealthService;
+               this.widgetMService = consulHealthService;
        }
 
        /**
@@ -124,13 +125,13 @@ public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseControl
                try {
                        app = getApp(request);
                } catch (Exception e) {
-                       logger.error(EELFLoggerDelegate.errorLogger,
-                                       " Error retrieving Application to capture app name for analytics; Proceeding with empty app name");
+            logger.error(EELFLoggerDelegate.errorLogger,
+                    ERROR_MSG, e);
                }
                if (app != null) {
                        String restEndPoint = app.getAppRestEndpoint();
-                       if(restEndPoint.contains("/api")) {
-                               version = restEndPoint.substring(restEndPoint.indexOf("/api")+4);
+                       if(restEndPoint.indexOf("/api")!=-1) {
+                               version = restEndPoint.substring(restEndPoint.indexOf("api"));
                        }
                }
                String endPoint = "/storeAnalytics";
@@ -172,14 +173,18 @@ public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseControl
                                appName = getAppName(request, appName);
                        } catch (Exception e) {
                                logger.error(EELFLoggerDelegate.errorLogger,
-                                               " Error retrieving Application to capture app name for analytics; Proceeding with empty app name");
+                        ERROR_MSG, e);
                        }
 
                        try {
-                               storeAuxAnalytics(analyticsMap, appName);
+                               if(SystemProperties.containsProperty(FEED_ML) && 
+                                               SystemProperties.getProperty(FEED_ML).equals("true")) {
+                                       storeAuxAnalytics(analyticsMap, appName);
+                               }
+                               
                        } catch (Exception e) {
                                logger.error(EELFLoggerDelegate.errorLogger,
-                                               " Error retrieving Application to capture app name for analytics; Proceeding with empty app name");
+                        ERROR_MSG, e);
                        }
 
                        MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, EPEELFLoggerAdvice.getCurrentDateTimeUTC());
@@ -224,15 +229,16 @@ public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseControl
                return appRecord;
        }
 
-       private void storeAuxAnalytics(Analytics analyticsMap, String appName) {
+       protected void storeAuxAnalytics(Analytics analyticsMap, String appName) {
                logger.info(EELFLoggerDelegate.debugLogger,
                                " Registering an action for recommendation: AppName/Function/UserId " + appName + "/"
                                                + analyticsMap.getFunction() + "/" + analyticsMap.getUserid());
 
+               
                Map<String, String> requestMapping = new HashMap<>();
                requestMapping.put("id", analyticsMap.getUserid());
                requestMapping.put("action", appName + "|" + analyticsMap.getFunction());
-
+               
                HttpHeaders headers = new HttpHeaders();
                headers.setContentType(MediaType.APPLICATION_JSON);
 
@@ -241,12 +247,11 @@ public class WebAnalyticsExtAppController extends EPRestrictedRESTfulBaseControl
 
                // send it!
                ListenableFuture<ResponseEntity<String>> out = restTemplate.exchange(
-                               EcompPortalUtils.widgetMsProtocol() + "://"
-                                               + consulHealthService.getServiceLocation(CONSUL_ML_SERVICE_ID,
-                                                               SystemProperties.getProperty("microservices.m-learn.local.port"))
+                               EcompPortalUtils.widgetMLProtocol() + "://"
+                                               + widgetMService.getMLServiceLocation()
                                                + REGISTER_ACTION,
                                HttpMethod.POST, entity, String.class);
                out.addCallback(successCallback, failureCallback);
        }
        
-}
+}
\ No newline at end of file