Update license; improve coverage; add docs dir
[portal.git] / ecomp-portal-BE-os / src / main / java / org / openecomp / portalapp / portal / ueb / EPUebHelper.java
index 1162cf2..81b1c49 100644 (file)
@@ -1,21 +1,39 @@
 /*-
- * ================================================================================
- * ECOMP Portal
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the “License”);
+ * you may not use this software except in compliance with the License.
  * You may obtain a copy of the License at
- * 
- *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
+ *             http://www.apache.org/licenses/LICENSE-2.0
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
- * ================================================================================
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the “License”);
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *             https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ * ECOMP is a trademark and service mark of AT&T Intellectual Property.
  */
 package org.openecomp.portalapp.portal.ueb;
 
@@ -24,8 +42,6 @@ import java.net.URL;
 import java.util.LinkedList;
 import java.util.List;
 
-import javax.annotation.PostConstruct;
-
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
 import org.openecomp.portalapp.portal.domain.EPApp;
@@ -36,13 +52,13 @@ import org.openecomp.portalapp.portal.logging.logic.EPLogUtil;
 import org.openecomp.portalapp.portal.service.EPAppService;
 import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
-import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants;
-import org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties;
 import org.openecomp.portalsdk.core.onboarding.ueb.Helper;
 import org.openecomp.portalsdk.core.onboarding.ueb.Publisher;
 import org.openecomp.portalsdk.core.onboarding.ueb.UebException;
 import org.openecomp.portalsdk.core.onboarding.ueb.UebManager;
 import org.openecomp.portalsdk.core.onboarding.ueb.UebMsg;
+import org.openecomp.portalsdk.core.onboarding.util.PortalApiConstants;
+import org.openecomp.portalsdk.core.onboarding.util.PortalApiProperties;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.EnableAspectJAutoProxy;
 import org.springframework.stereotype.Component;
@@ -54,88 +70,80 @@ import org.springframework.transaction.annotation.Transactional;
 @EnableAspectJAutoProxy
 public class EPUebHelper {
        EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUebHelper.class);
-       
+
        @Autowired
        EPAppService appsService;
-       
-       
+
        @Autowired
        private SessionFactory sessionFactory;
-       
+
        @SuppressWarnings("unused")
        private Publisher epPublisher;
-       
+
        public EPUebHelper() {
-               
+
        }
+
        //
-       // This should only be called by the ECOMP Portal App, other Apps have just one publisher and use appPublisher
+       // This should only be called by the ECOMP Portal App, other Apps have just one
+       // publisher and use appPublisher
        //
        @SuppressWarnings("unused")
        @EPMetricsLog
-       public void refreshPublisherList()
-       {
+       public void refreshPublisherList() {
                Session localSession = null;
-           boolean addedPublisher = false;
-           
+               boolean addedPublisher = false;
+
                try {
                        localSession = sessionFactory.openSession();
-               
+
                        List<EcompApp> apps = appsService.getEcompAppAppsFullList();
-                       for (int i = 0; i < apps.size(); i++) 
-                       {
-                               if ((apps.get(i).isEnabled()) &&
-                                       (apps.get(i).getUebTopicName() != null) &&
-                                       !(apps.get(i).getUebTopicName().toUpperCase().contains("ECOMP-PORTAL-INBOX")))
-                               {
-                                       logger.debug(EELFLoggerDelegate.debugLogger, "UEBManager adding publisher for " + apps.get(i).getUebTopicName());
+                       for (int i = 0; i < apps.size(); i++) {
+                               if ((apps.get(i).isEnabled()) && (apps.get(i).getUebTopicName() != null)
+                                               && !(apps.get(i).getUebTopicName().toUpperCase().contains("ECOMP-PORTAL-INBOX"))) {
+                                       logger.debug(EELFLoggerDelegate.debugLogger,
+                                                       "UEBManager adding publisher for " + apps.get(i).getUebTopicName());
                                        UebManager.getInstance().addPublisher(apps.get(i).getUebTopicName());
-                       addedPublisher = true;
-                           }
-                               else if ((apps.get(i).getId() != 1) && // App may have been disabled, remove the publisher
-                                                !(apps.get(i).isEnabled()))
-                               {
-                                       if(apps.get(i).getUebTopicName()!=null){
+                                       addedPublisher = true;
+                               } else if ((apps.get(i).getId() != 1) && // App may have been disabled, remove the publisher
+                                               !(apps.get(i).isEnabled())) {
+                                       if (apps.get(i).getUebTopicName() != null) {
                                                UebManager.getInstance().removePublisher(apps.get(i).getUebTopicName());
                                        }
                                }
                        }
-               }
-               catch (Exception e)
-               {
+               } catch (Exception e) {
                        EPLogUtil.logEcompError(EPAppMessagesEnum.BeUebSystemError, "add/remove Publisher");
-                       String stackTrace = EcompPortalUtils.getStackTrace(e);
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while refreshing the publisher list. Details: " + stackTrace);
+                       logger.error(EELFLoggerDelegate.errorLogger, "refreshPublisherList failed", e);
                }
-               
-               //publisherList.print();
-               
+
+               // publisherList.print();
+
                if (addedPublisher == true) // Give publishers time to initialize
                {
                        Helper.sleep(400);
                }
        }
-       
-       //@PostConstruct
-       //@EPMetricsLog
+
+       // @PostConstruct
+       // @EPMetricsLog
        public void initUeb() {
                try {
-                       epPublisher = new Publisher(PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY), 
-                                                           PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET), 
-                                                           PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME));
+                       epPublisher = new Publisher(PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY),
+                                       PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_SECRET),
+                                       PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME));
                } catch (Exception e) {
                        EPLogUtil.logEcompError(EPAppMessagesEnum.BeUebConnectionError, e.getMessage());
-                       String stackTrace = EcompPortalUtils.getStackTrace(e);
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while initializing the publisher. Details: " + stackTrace);
+                       logger.error(EELFLoggerDelegate.errorLogger, "initUeb failed", e);
                }
-               
+
                Thread thread = new Thread("EPUebManager: postConstructMethod - refreshPublisherList") {
-                   public void run(){
-                       refreshPublisherList();
-                   }
+                       public void run() {
+                               refreshPublisherList();
+                       }
                };
                if (thread != null) {
-                   thread.start();
+                       thread.start();
                }
        }
 
@@ -145,74 +153,69 @@ public class EPUebHelper {
                try {
                        UebManager.getInstance().addPublisher(app.getUebTopicName());
                } catch (UebException e) {
-                       String stackTrace = EcompPortalUtils.getStackTrace(e);
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception while adding a publisher. Details: " + stackTrace);
+                       logger.error(EELFLoggerDelegate.errorLogger, "addPublisher failed", e);
                }
        }
-       
+
        public boolean checkAvailability() {
-               
+
+               //
+               // Test existence of topic at UEB url
                //
-               //  Test existence of topic at UEB url
                //
-               //  
                //
                boolean available = true;
                LinkedList<String> urlList = Helper.uebUrlList();
                if (!urlList.isEmpty()) {
-                   String url = "http://" + urlList.getFirst() + ":3904/topics/" + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME);
-                   if (!url.isEmpty()) {
-                       try {
-                           URL siteURL = new URL(url);
-                           HttpURLConnection connection = (HttpURLConnection) siteURL.openConnection();
-                           connection.setRequestMethod("GET");
-                           connection.connect();
-                    
-                           int code = connection.getResponseCode();
-                           if (code == 200) {
-                               available = true;
-                           }
-                           else {
-                               EPLogUtil.logEcompError(EPAppMessagesEnum.BeUebConnectionError, url);
-                               available = false;
-                               logger.warn(EELFLoggerDelegate.errorLogger, "Warning! UEB topic existence check failed, topic = " + url );
-                               logger.debug(EELFLoggerDelegate.debugLogger, "Warning! UEB topic existence check failed, topic = " + url );
-                           }
-                       }
-                       catch (Exception e) {
-                           available = false;
-                           String stackTrace = EcompPortalUtils.getStackTrace(e);
-                                       logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while performing the UEB Healthcheck. Details: " + stackTrace);
-                       }
-                   }
+                       String url = "http://" + urlList.getFirst() + ":3904/topics/"
+                                       + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME);
+                       if (!url.isEmpty()) {
+                               try {
+                                       URL siteURL = new URL(url);
+                                       HttpURLConnection connection = (HttpURLConnection) siteURL.openConnection();
+                                       connection.setRequestMethod("GET");
+                                       connection.connect();
+
+                                       int code = connection.getResponseCode();
+                                       if (code == 200) {
+                                               available = true;
+                                       } else {
+                                               EPLogUtil.logEcompError(EPAppMessagesEnum.BeUebConnectionError, url);
+                                               available = false;
+                                               logger.warn(EELFLoggerDelegate.errorLogger,
+                                                               "Warning! UEB topic existence check failed, topic = " + url);
+                                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                                               "Warning! UEB topic existence check failed, topic = " + url);
+                                       }
+                               } catch (Exception e) {
+                                       available = false;
+                                       logger.error(EELFLoggerDelegate.errorLogger, "checkAvailability failed", e);
+                               }
+                       }
                }
                return available;
        }
-       
-    public boolean MessageCanBeSentToTopic() {
-    
-       boolean sentMsgSuccessfully = false;
-       
-           UebMsg msg = new UebMsg();
-           msg.putSourceTopicName(PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME));
-           msg.putPayload("Pinging topic for health check");
-           msg.putMsgType(EPUebMsgTypes.UEB_MSG_TYPE_HEALTH_CHECK);
-       
-           try {
-                  // epPublisher.send(msg);
-                   sentMsgSuccessfully = true;
-           } 
-           catch (Exception e) {
-               EPLogUtil.logEcompError(EPAppMessagesEnum.BeHealthCheckUebClusterError);
-               String stackTrace = EcompPortalUtils.getStackTrace(e);
-                   sentMsgSuccessfully = false;
-                   logger.warn(EELFLoggerDelegate.errorLogger, "Warning! could not successfully publish a UEB msg to " 
-                                    + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME) + " exception : " + stackTrace);
-           } 
-           
-           return sentMsgSuccessfully;
-    }
-    
-}
 
+       public boolean MessageCanBeSentToTopic() {
+
+               boolean sentMsgSuccessfully = false;
+
+               UebMsg msg = new UebMsg();
+               msg.putSourceTopicName(PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME));
+               msg.putPayload("Pinging topic for health check");
+               msg.putMsgType(EPUebMsgTypes.UEB_MSG_TYPE_HEALTH_CHECK);
+
+               try {
+                       // epPublisher.send(msg);
+                       sentMsgSuccessfully = true;
+               } catch (Exception e) {
+                       EPLogUtil.logEcompError(EPAppMessagesEnum.BeHealthCheckUebClusterError);
+                       sentMsgSuccessfully = false;
+                       logger.warn(EELFLoggerDelegate.errorLogger, "Warning! could not successfully publish a UEB msg to "
+                                       + PortalApiProperties.getProperty(PortalApiConstants.ECOMP_PORTAL_INBOX_NAME), e);
+               }
+
+               return sentMsgSuccessfully;
+       }
 
+}