Fix bug about getting monitor data from dmaap 15/22015/1
authorshentao <shentao@chinamobile.com>
Fri, 3 Nov 2017 12:49:26 +0000 (20:49 +0800)
committershentao <shentao@chinamobile.com>
Fri, 3 Nov 2017 12:49:34 +0000 (20:49 +0800)
Change-Id: Id68eb80f3e098b44e1dfc95b21f02f4e5ce2ec21
Issue-Id: USECASEUI-50
Signed-off-by: shentao <shentao@chinamobile.com>
16 files changed:
resources/dbscripts/mysql/usecase-ui-createobj.sql
server/src/main/java/org/onap/usecaseui/server/UsecaseuiServerApplication.java
server/src/main/java/org/onap/usecaseui/server/bean/AlarmsHeader.java
server/src/main/java/org/onap/usecaseui/server/bean/PerformanceHeader.java
server/src/main/java/org/onap/usecaseui/server/controller/AlarmController.java
server/src/main/java/org/onap/usecaseui/server/controller/PerformanceController.java
server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsHeaderServiceImpl.java
server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsInformationServiceImpl.java
server/src/main/java/org/onap/usecaseui/server/service/impl/PerformanceHeaderServiceImpl.java
server/src/main/java/org/onap/usecaseui/server/service/impl/PerformanceInformationServiceImpl.java
server/src/main/java/org/onap/usecaseui/server/util/DateUtils.java
server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java [new file with mode: 0644]
server/src/main/java/org/onap/usecaseui/server/util/ResponseUtil.java [new file with mode: 0644]
server/src/main/resources/dmaap.properties [new file with mode: 0644]
server/src/test/java/org/onap/usecaseui/server/controller/AlarmControllerTest.java
server/src/test/java/org/onap/usecaseui/server/controller/PerformanceControllerTest.java

index 7a55c72..7f83957 100644 (file)
@@ -27,7 +27,8 @@ CREATE TABLE `alarms_additionalinformation` (
   `eventId` varchar(30) NOT NULL,
   `createTime` datetime NOT NULL,
   `updateTime` datetime NOT NULL,
-  PRIMARY KEY (`name`,`eventId`)
+  `id` int(10) NOT NULL,
+  PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 -- ----------------------------
@@ -61,7 +62,7 @@ CREATE TABLE `alarms_commoneventheader` (
   `status` varchar(11) NOT NULL,
   `createTime` datetime NOT NULL,
   `updateTime` datetime NOT NULL,
-  PRIMARY KEY (`eventId`)
+  PRIMARY KEY (`eventName`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 -- ----------------------------
@@ -74,7 +75,8 @@ CREATE TABLE `performance_additionalinformation` (
   `eventId` varchar(30) NOT NULL,
   `createTime` datetime NOT NULL,
   `updateTime` datetime NOT NULL,
-  PRIMARY KEY (`name`,`eventId`)
+  `id` int(10) NOT NULL,
+  PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 -- ----------------------------
@@ -101,11 +103,9 @@ CREATE TABLE `performance_commoneventheader` (
   `measurementInterval` varchar(10) NOT NULL,
   `createTime` datetime NOT NULL,
   `updateTime` datetime NOT NULL,
-  PRIMARY KEY (`eventId`)
+  PRIMARY KEY (`eventName`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
 -- ----------------------------
 -- Init Records 
--- ----------------------------
-INSERT INTO `alarms_additionalinformation` VALUES ('name', 'value', 'eventId', '2017-09-19 11:12:34', '2017-09-19 11:12:34');
-INSERT INTO `alarms_commoneventheader` VALUES ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '2017-09-04 15:25:11', '2017-09-11 15:25:19');
+-- ----------------------------
\ No newline at end of file
index c12bb24..a99a6c5 100644 (file)
@@ -15,6 +15,7 @@
  */
 package org.onap.usecaseui.server;
 
+import org.onap.usecaseui.server.util.DmaapSubscriber;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.annotation.Bean;
@@ -29,9 +30,11 @@ public class UsecaseuiServerApplication {
     public RestTemplate getRestTemplate(){
         return new RestTemplate();
     }
-    
+
        public static void main(String[] args) {
                SpringApplication.run(UsecaseuiServerApplication.class, args);
+        DmaapSubscriber dmaapSubscriber = new DmaapSubscriber();
+        dmaapSubscriber.run();
        }
        
 }
index d974568..fd896c5 100644 (file)
@@ -31,13 +31,14 @@ public class AlarmsHeader implements Serializable{
        @Column(name = "version")
        private String version;
        
+       @Id
        @Column(name = "eventName")
        private String eventName;
        
        @Column(name = "domain")
        private String domain;
        
-       @Id
+       
        @Column(name = "eventId")
        private String eventId;
        
index a5afae8..c42fcf8 100755 (executable)
@@ -31,13 +31,14 @@ public class PerformanceHeader implements Serializable {
        @Column(name = "version")\r
        private String version;\r
        \r
+       @Id\r
        @Column(name = "eventName")\r
        private String eventName;\r
        \r
        @Column(name = "domain")\r
        private String domain;\r
        \r
-       @Id\r
+       \r
        @Column(name = "eventId")\r
        private String eventId;\r
        \r
index 170d67d..7b3bd7d 100755 (executable)
@@ -29,6 +29,7 @@ import org.onap.usecaseui.server.service.AlarmsInformationService;
 import org.onap.usecaseui.server.util.CSVUtils;\r
 import org.onap.usecaseui.server.util.DateUtils;\r
 import org.onap.usecaseui.server.util.Page;\r
+import org.onap.usecaseui.server.util.ResponseUtil;\r
 import org.slf4j.Logger;\r
 import org.slf4j.LoggerFactory;\r
 import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
@@ -70,25 +71,12 @@ public class AlarmController
 \r
     private ObjectMapper omAlarm = new ObjectMapper();\r
 \r
-    private List<String> last_eventId = new ArrayList<>();\r
-\r
-    private List<String> last_status = new ArrayList<>();\r
-\r
-    private List<String> last_vfStatus = new ArrayList<>();\r
 \r
     @RequestMapping(value = {"/usecase-ui"}, method = RequestMethod.GET)\r
     public ModelAndView index(){\r
         return new ModelAndView("index");\r
     }\r
 \r
-    @RequestMapping(value = {"/alarm/{eventId}/{eventName}/{name}/{value}/{createTime}/{status}/{vfStatus}"})\r
-    public String getAlarmDateTotal(@PathVariable String eventId,@PathVariable String eventName,\r
-                                    @PathVariable String name,@PathVariable String value,\r
-                                    @PathVariable String createTime,@PathVariable String status,\r
-                                    @PathVariable String vfStatus) throws ParseException {\r
-\r
-        return "";\r
-    }\r
 \r
     @RequestMapping(value = {"/alarm/{currentPage}/{pageSize}",\r
             "/alarm/{currentPage}/{pageSize}/{eventId}/{eventName}/{name}/{value}/{createTime}/{status}/{vfStatus}"},\r
@@ -98,6 +86,10 @@ public class AlarmController
                                @PathVariable(required = false) String createTime,@PathVariable(required = false) String status,\r
                                @PathVariable(required = false) String vfStatus,\r
                                @PathVariable int currentPage, @PathVariable int pageSize) throws JsonProcessingException {\r
+        logger.info("transfer getAlarmData Apis, " +\r
+                "Parameter all follows : [currentPage : {} , pageSize : {} , eventId : {} , " +\r
+                "eventName : {} , name : {} , value :{} , createTime : {} , status : {} , vfStatus : {}]"\r
+                ,currentPage,pageSize,eventId,eventName,name,value,createTime,status,vfStatus);\r
         List<AlarmsHeader> alarmsHeaders = null;\r
         List<AlarmBo> list = new ArrayList<>();\r
         Page pa = null;\r
@@ -153,6 +145,8 @@ public class AlarmController
 \r
     @RequestMapping(value = { "/alarm/genCsv/{eventId}" } , method = RequestMethod.GET , produces = "application/json")\r
     public String generateCsvFile(HttpServletResponse response, @PathVariable String[] eventId) throws JsonProcessingException {\r
+        logger.info("transfer generateCsvFile Apis, " +\r
+                        "Parameter all follows : [eventId : {}]",eventId);\r
         String csvFile = "csvFiles/vnf_alarm_"+new SimpleDateFormat("yy-MM-ddHH:mm:ss").format(new Date())+".csv";\r
         List<AlarmsHeader> alarmsHeaders = alarmsHeaderService.queryId(eventId);\r
         List<String[]> csvData = new ArrayList<>();\r
@@ -183,76 +177,11 @@ public class AlarmController
         }catch (Exception e){\r
             logger.error(e.getMessage());\r
         }\r
-        if (null != response){\r
-            response.setCharacterEncoding("utf-8");\r
-            response.setContentType("application/csv");\r
-            response.setHeader("Content-Disposition","attachment;filename="+csvFile);\r
-            try(InputStream is = new FileInputStream(csvFile);\r
-                OutputStream os = response.getOutputStream()){\r
-                byte[] b = new byte[2048];\r
-                int length;\r
-                while ((length = is.read(b)) > 0) {\r
-                    os.write(b, 0, length);\r
-                }\r
-                return omAlarm.writeValueAsString("success");\r
-            }catch (IOException e){\r
-                logger.error("download csv File error :"+e.getMessage());\r
-                return omAlarm.writeValueAsString("failed");\r
-            }\r
-        }else\r
-            return omAlarm.writeValueAsString("csvFile generate success,response is null,don't download to local");\r
-    }\r
-\r
-\r
-    @RequestMapping(value = { "/alarm/{eventId}/{status}/{type}" } , method = RequestMethod.PUT )\r
-    public String updateStatus(HttpServletResponse response,@PathVariable String[] eventId,@PathVariable String[] status,@PathVariable String type) throws JsonProcessingException {\r
-        List<AlarmsHeader> alarmsHeaders = alarmsHeaderService.queryId(eventId);\r
-        last_eventId.clear();\r
-        last_vfStatus.clear();\r
-        last_status.clear();\r
-        for (AlarmsHeader ala: alarmsHeaders) {\r
-            last_eventId.add(ala.getEventId());\r
-            last_status.add(ala.getStatus());\r
-            last_vfStatus.add(ala.getVfStatus());\r
-            if ("vf".equals(type))\r
-                ala.setVfStatus(status[0]);\r
-            else if ("many".equals(type)){\r
-                ala.setStatus(status[0]);\r
-                ala.setVfStatus(status[1]);\r
-            }else {\r
-                ala.setStatus(status[0]);\r
-            }\r
-            if ("0".equals(alarmsHeaderService.updateAlarmsHeader(ala))) {\r
-                if (null != response)\r
-                    response.setStatus(400);\r
-                return omAlarm.writeValueAsString("failed");\r
-            }\r
-        }\r
-        return omAlarm.writeValueAsString("success");\r
-    }\r
-\r
-    @RequestMapping(value = {"/alarm/revoke"} , method = RequestMethod.GET)\r
-    public String revoke() throws JsonProcessingException {\r
-        String result ;\r
-        if (last_eventId.size() > 0 && last_vfStatus.size() > 0 && last_status.size() > 0){\r
-            String[] eids = new String[last_eventId.size()];\r
-            last_eventId.toArray(eids);\r
-            List<AlarmsHeader> alarmsHeaders  = alarmsHeaderService.queryId(eids);\r
-            for (int i = 0;i<alarmsHeaders.size();i++){\r
-                AlarmsHeader ala =  alarmsHeaders.get(i);\r
-                ala.setStatus(last_status.get(i));\r
-                ala.setVfStatus(last_vfStatus.get(i));\r
-                alarmsHeaderService.updateAlarmsHeader(ala);\r
-            }\r
-            last_eventId.clear();\r
-            last_status.clear();\r
-            last_vfStatus.clear();\r
-            result = "revoke success";\r
-        } else {\r
-            result = "nothing can revoke";\r
+        if (ResponseUtil.responseDownload(csvFile,response)){\r
+            return omAlarm.writeValueAsString("success");\r
+        }else{\r
+            return omAlarm.writeValueAsString("failed");\r
         }\r
-        return omAlarm.writeValueAsString(result);\r
     }\r
 \r
-\r
 }\r
index 2634d25..19a69b9 100755 (executable)
@@ -27,6 +27,7 @@ import org.onap.usecaseui.server.service.PerformanceInformationService;
 import org.onap.usecaseui.server.util.CSVUtils;
 import org.onap.usecaseui.server.util.DateUtils;
 import org.onap.usecaseui.server.util.Page;
+import org.onap.usecaseui.server.util.ResponseUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.context.annotation.Configuration;
@@ -71,6 +72,10 @@ public class PerformanceController {
                                      @PathVariable int pageSize,@PathVariable(required = false) String eventId,
                                      @PathVariable(required = false) String eventName,@PathVariable(required = false) String name,
                                      @PathVariable(required = false) String value,@PathVariable(required = false) String createTime) throws JsonProcessingException {
+        logger.info("transfer getAlarmData Apis, " +
+                        "Parameter all follows : [currentPage : {} , pageSize : {} , eventId : {} , " +
+                        "eventName : {} , name : {} , value :{} , createTime : {} ]"
+                ,currentPage,pageSize,eventId,eventName,name,value,createTime);
         List<Object> list = new ArrayList<>();
         Page pa = null;
         if (null != eventId || null != eventName || null != name || null != value || null != createTime){
@@ -149,61 +154,39 @@ public class PerformanceController {
             });
         });
         CSVUtils.writeCsv(PerformanceCSVHeaders,csvData,csvFile);
-        if (null != response){
-            response.setCharacterEncoding("utf-8");
-            response.setContentType("application/csv");
-            response.setHeader("Content-Disposition","attachment;filename="+csvFile);
-            try(InputStream is = new FileInputStream(csvFile);
-                OutputStream os = response.getOutputStream()){
-                byte[] b = new byte[2048];
-                int length;
-                while ((length = is.read(b)) > 0) {
-                    os.write(b, 0, length);
-                }
-                return omPerformance.writeValueAsString("success");
-            }catch (IOException e){
-                logger.error("download csv File error :"+e.getMessage());
-                return omPerformance.writeValueAsString("failed");
-            }
-        }else
-            return omPerformance.writeValueAsString("csvFile generate success,but response is null,don't download to local");
-
+        if (ResponseUtil.responseDownload(csvFile,response)){
+            return omPerformance.writeValueAsString("success");
+        }else{
+            return omPerformance.writeValueAsString("failed");
+        }
     }
 
-    @RequestMapping(value = {"/performance/genDiaCsv"}, method = RequestMethod.POST, produces = "application/json")
-    public String generateDiaCsvFile(HttpServletResponse response,@RequestBody Map<String,String> p) throws JsonProcessingException {
-        String csvFileName = "csvFiles/"+p.get("name")+"_"+new SimpleDateFormat("yy-MM-ddHH:mm:ss").format(new Date())+".csv";
+    @RequestMapping(value = {"/performance/genDiaCsv/{dataJson}"}, method = RequestMethod.GET, produces = "application/json")
+    public String generateDiaCsvFile(HttpServletResponse response,@PathVariable String dataJson) throws IOException {
+        List<Map<String,Object>> dataList = omPerformance.readValue(dataJson,List.class);
+        String csvFileName = "csvFiles/"+dataList.get(0).get("name")+"_"+new SimpleDateFormat("yy-MM-ddHH:mm:ss").format(new Date())+".csv";
         try{
-            String[] headers = new String[]{"eventId","name","value","createTime","updateTime"};
+            String[] headers = new String[]{"eventId","name","dateUnit","value"};
             List<String[]> csvDatas = new ArrayList<>();
-            if (null != p){
-                StringBuffer fileData = new StringBuffer();
-                p.forEach((k,v)->{
-                    fileData.append(v+",");
+            if (null != dataList){
+                dataList.forEach((l)->{
+                    StringBuffer fileData = new StringBuffer();
+                    l.forEach((k,v)->{
+                        logger.info(v.toString());
+                        fileData.append(v.toString()+",");
+                    });
+                    csvDatas.add(fileData.toString().split(","));
                 });
-                csvDatas.add(fileData.toString().split(","));
             }
             CSVUtils.writeCsv(headers,csvDatas,csvFileName);
         }catch (Exception pe){
             logger.error(pe.getMessage());
         }
-        if (null != response){
-            response.setContentType("application/csv");
-            response.setHeader("Content-Disposition","attachment;filename="+csvFileName+"");
-            try(InputStream is = new FileInputStream(csvFileName);
-                OutputStream os = response.getOutputStream()){
-                byte[] b = new byte[2048];
-                int length;
-                while ((length = is.read(b)) > 0) {
-                    os.write(b, 0, length);
-                }
-                return omPerformance.writeValueAsString("success");
-            }catch (IOException e){
-                logger.error("download csv File error :"+e.getMessage());
-                return omPerformance.writeValueAsString("failed");
-            }
-        }else
-            return omPerformance.writeValueAsString("csvFile generate success,but response is null,don't download to local");
+        if (ResponseUtil.responseDownload(csvFileName,response)){
+            return omPerformance.writeValueAsString("success");
+        }else{
+            return omPerformance.writeValueAsString("failed");
+        }
     }
 
     @ResponseBody
@@ -214,11 +197,13 @@ public class PerformanceController {
         switch (unit){
             case "hour":
                 for(int i = 0 ; i < 4 ; i++){
-                    Date startDateHour = DateUtils.stringToDate(DateUtils.initDate(new Date(),1,1,-1,-1,0,0));
-                    Date endDateHour = DateUtils.stringToDate(DateUtils.initDate(new Date(),1,1,-1,-1,0,0));
+                    Date startDateHour = DateUtils.stringToDate(DateUtils.initDate(new Date(),1,1,1,-1,0,0));
+                    Date endDateHour = DateUtils.stringToDate(DateUtils.initDate(new Date(),1,1,1,-1,0,0));
                     endDateHour = DateUtils.stringToDate(DateUtils.addDate(endDateHour,"minute",15));
                     List<Integer> values = new ArrayList<>();
                     for (int j = 0 ; j < 4 ; j++){
+                        logger.info(DateUtils.dateToString(startDateHour));
+                        logger.info(DateUtils.dateToString(endDateHour));
                         values.add(performanceInformationService.queryDataBetweenSum(eventId,names[i],startDateHour,endDateHour));
                         startDateHour = DateUtils.stringToDate(DateUtils.addDate(startDateHour,"minute",15));
                         endDateHour = DateUtils.stringToDate(DateUtils.addDate(endDateHour,"minute",15));
@@ -261,9 +246,6 @@ public class PerformanceController {
                     endDateYear = DateUtils.stringToDate(DateUtils.addDate(endDateYear,"month",1));
                     List<Integer> values = new ArrayList<>();
                     for (int j = 0 ; j < 12 ; j++){
-                        logger.info(names[i]);
-                        logger.info(DateUtils.dateToString(startDateYear));
-                        logger.info(DateUtils.dateToString(endDateYear));
                         values.add(performanceInformationService.queryDataBetweenSum(eventId,names[i],startDateYear,endDateYear));
                         startDateYear = DateUtils.stringToDate(DateUtils.addDate(startDateYear,"month",1));
                         endDateYear = DateUtils.stringToDate(DateUtils.addDate(endDateYear,"month",1));
index f918b22..91c090a 100755 (executable)
@@ -49,17 +49,15 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
     \r
     \r
        public String saveAlarmsHeader(AlarmsHeader alarmsHeader) {\r
-                try{\r
+                try(Session session = sessionFactory.openSession();){\r
                    if (null == alarmsHeader) {\r
                        logger.error("AlarmsHeaderServiceImpl saveAlarmsHeader alarmsHeader is null!");\r
                    }\r
                    logger.info("AlarmsHeaderServiceImpl saveAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
-                   Session session = sessionFactory.openSession();\r
                    Transaction tx = session.beginTransaction();     \r
                    session.save(alarmsHeader);\r
                    tx.commit();\r
                    session.flush();\r
-                   session.close();\r
                    return "1";\r
                } catch (Exception e) {\r
                    logger.error("exception occurred while performing AlarmsHeaderServiceImpl saveAlarmsHeader. Details:" + e.getMessage());\r
@@ -71,17 +69,15 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
 \r
        @Override\r
        public String updateAlarmsHeader(AlarmsHeader alarmsHeader) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
             if (null == alarmsHeader){\r
                 logger.error("AlarmsHeaderServiceImpl updateAlarmsHeader alarmsHeader is null!");\r
             }\r
             logger.info("AlarmsHeaderServiceImpl updateAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
-            Session session = sessionFactory.openSession();\r
             Transaction tx = session.beginTransaction();     \r
             session.update(alarmsHeader);\r
             tx.commit();\r
             session.flush();\r
-            session.close();\r
             return "1";\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing AlarmsHeaderServiceImpl updateAlarmsHeader. Details:" + e.getMessage());\r
@@ -90,7 +86,7 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
        }\r
 \r
        public int getAllCount(AlarmsHeader alarmsHeader,int currentPage,int pageSize) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer count=new StringBuffer("select count(*) from AlarmsHeader a where 1=1");\r
                        if (null == alarmsHeader) {\r
                 //logger.error("AlarmsHeaderServiceImpl getAllCount alarmsHeader is null!");\r
@@ -200,10 +196,8 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                        count.append(" and a.updateTime like '%"+ver+"%'");\r
                 }\r
             } \r
-            Session session = sessionFactory.openSession();\r
             long q=(long)session.createQuery(count.toString()).uniqueResult();\r
             session.flush();\r
-            session.close();\r
             return (int)q;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing AlarmsHeaderServiceImpl getAllCount. Details:" + e.getMessage());\r
@@ -218,7 +212,7 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                int allRow =this.getAllCount(alarmsHeader,currentPage,pageSize);\r
                int offset = page.countOffset(currentPage, pageSize);\r
                \r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql =new StringBuffer("from AlarmsHeader a where 1=1");\r
             if (null == alarmsHeader) {\r
                 //logger.error("AlarmsHeaderServiceImpl queryAlarmsHeader alarmsHeader is null!");\r
@@ -329,7 +323,6 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
                 }\r
             }\r
             logger.info("AlarmsHeaderServiceImpl queryAlarmsHeader: alarmsHeader={}", alarmsHeader);\r
-            Session session = sessionFactory.openSession();\r
             Query query = session.createQuery(hql.toString());\r
             query.setFirstResult(offset);\r
             query.setMaxResults(pageSize);\r
@@ -339,7 +332,6 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
             page.setTotalRecords(allRow);\r
             page.setList(list);\r
             session.flush();\r
-            session.close();\r
             return page;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing AlarmsHeaderServiceImpl queryAlarmsHeader. Details:" + e.getMessage());\r
@@ -351,15 +343,13 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService {
        @SuppressWarnings("unchecked")\r
        @Override\r
        public List<AlarmsHeader> queryId(String[] id) {\r
-               try {\r
+               try(Session session = sessionFactory.openSession();){\r
                        if(id.length==0) {\r
                                logger.error("AlarmsHeaderServiceImpl queryId is null!");\r
                        }\r
                        List<AlarmsHeader> list = new ArrayList<AlarmsHeader>();\r
-                       Session session = sessionFactory.openSession();\r
-                       Query query = session.createQuery("from AlarmsHeader a where a.eventId IN (:alist)");\r
+                       Query query = session.createQuery("from AlarmsHeader a where a.eventName IN (:alist)");\r
                        list = query.setParameterList("alist", id).list();\r
-                       session.close();\r
                        return list;\r
                } catch (Exception e) {\r
                        logger.error("exception occurred while performing AlarmsHeaderServiceImpl queryId. Details:" + e.getMessage());\r
index dfd92d3..6da264f 100755 (executable)
@@ -48,17 +48,15 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
 \r
        @Override\r
        public String saveAlarmsInformation(AlarmsInformation alarmsInformation) {\r
-                try{\r
+                try(Session session = sessionFactory.openSession();){\r
                    if (null == alarmsInformation) {\r
                        logger.error("alarmsInformation saveAlarmsInformation alarmsInformation is null!");\r
                    }\r
                    logger.info("AlarmsInformationServiceImpl saveAlarmsInformation: alarmsInformation={}", alarmsInformation);\r
-                   Session session = sessionFactory.openSession();\r
                    Transaction tx = session.beginTransaction();     \r
                    session.save(alarmsInformation);\r
                    tx.commit();\r
                    session.flush();\r
-                   session.close();\r
                    return "1";\r
                } catch (Exception e) {\r
                    logger.error("exception occurred while performing AlarmsInformationServiceImpl saveAlarmsInformation. Details:" + e.getMessage());\r
@@ -69,17 +67,15 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
 \r
        @Override\r
        public String updateAlarmsInformation(AlarmsInformation alarmsInformation) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
             if (null == alarmsInformation) {\r
                 logger.error("alarmsInformation updateAlarmsInformation alarmsInformation is null!");\r
             }\r
             logger.info("AlarmsInformationServiceImpl updateAlarmsInformation: alarmsInformation={}", alarmsInformation);\r
-            Session session = sessionFactory.openSession();\r
             Transaction tx = session.beginTransaction();     \r
             session.update(alarmsInformation);\r
             tx.commit();\r
             session.flush();\r
-            session.close();\r
             return "1";\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());\r
@@ -89,7 +85,7 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
        \r
 \r
        public int getAllCount(AlarmsInformation alarmsInformation, int currentPage, int pageSize) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql = new StringBuffer("select count(*) from AlarmsInformation a where 1=1");\r
                        if (null == alarmsInformation) {\r
                 //logger.error("AlarmsInformationServiceImpl getAllCount alarmsInformation is null!");\r
@@ -115,10 +111,8 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
                        hql.append(" and a.updateTime like '%"+ver+"%'");\r
                 }\r
             } \r
-            Session session = sessionFactory.openSession();\r
             long q=(long)session.createQuery(hql.toString()).uniqueResult();\r
             session.flush();\r
-            session.close();\r
             return (int)q;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing AlarmsInformationServiceImpl getAllCount. Details:" + e.getMessage());\r
@@ -134,7 +128,7 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
                int allRow =this.getAllCount(alarmsInformation,currentPage,pageSize);\r
                int offset = page.countOffset(currentPage, pageSize);\r
                \r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql =new StringBuffer("from AlarmsInformation a where 1=1");\r
             if (null == alarmsInformation) {\r
                 //logger.error("AlarmsInformationServiceImpl queryAlarmsInformation alarmsInformation is null!");\r
@@ -161,7 +155,6 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
                 }\r
             }\r
             logger.info("AlarmsInformationServiceImpl queryAlarmsInformation: alarmsInformation={}", alarmsInformation);\r
-            Session session = sessionFactory.openSession();\r
             Query query = session.createQuery(hql.toString());\r
             query.setFirstResult(offset);\r
             query.setMaxResults(pageSize);\r
@@ -171,7 +164,6 @@ public class AlarmsInformationServiceImpl implements AlarmsInformationService {
             page.setTotalRecords(allRow);\r
             page.setList(list);\r
             session.flush();\r
-            session.close();\r
             return page;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing AlarmsInformationServiceImpl queryAlarmsInformation. Details:" + e.getMessage());\r
index 1dd783e..3a4ddf5 100755 (executable)
@@ -50,17 +50,15 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
 \r
        @Override\r
        public String savePerformanceHeader(PerformanceHeader performanceHeder) {\r
-                try{\r
+                try(Session session = sessionFactory.openSession();){\r
                    if (null == performanceHeder){\r
                        logger.error("PerformanceHeaderServiceImpl savePerformanceHeader performanceHeder is null!");\r
                    }\r
                    logger.info("PerformanceHeaderServiceImpl savePerformanceHeader: performanceHeder={}", performanceHeder);\r
-                   Session session = sessionFactory.openSession();\r
                    Transaction tx = session.beginTransaction();     \r
                    session.save(performanceHeder);\r
                    tx.commit();\r
                    session.flush();\r
-                   session.close();\r
                    return "1";\r
                } catch (Exception e) {\r
                    logger.error("exception occurred while performing PerformanceHeaderServiceImpl savePerformanceHeader. Details:" + e.getMessage());\r
@@ -72,17 +70,15 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
 \r
        @Override\r
        public String updatePerformanceHeader(PerformanceHeader performanceHeder) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
             if (null == performanceHeder){\r
                 logger.error("PerformanceHeaderServiceImpl updatePerformanceHeader performanceHeder is null!");\r
             }\r
             logger.info("PerformanceHeaderServiceImpl updatePerformanceHeader: performanceHeder={}", performanceHeder);\r
-            Session session = sessionFactory.openSession();\r
             Transaction tx = session.beginTransaction();     \r
             session.update(performanceHeder);\r
             tx.commit();\r
             session.flush();\r
-            session.close();\r
             return "1";\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing PerformanceHeaderServiceImpl updatePerformanceHeader. Details:" + e.getMessage());\r
@@ -92,7 +88,7 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
 \r
 \r
        public int getAllCount(PerformanceHeader performanceHeder, int currentPage, int pageSize) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql = new StringBuffer("select count(*) from PerformanceHeader a where 1=1");\r
                        if (null == performanceHeder) {\r
                 //logger.error("PerformanceHeaderServiceImpl getAllCount performanceHeder is null!");\r
@@ -174,10 +170,8 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
                        hql.append(" and a.updateTime like '%"+ver+"%'");\r
                 }\r
             } \r
-            Session session = sessionFactory.openSession();\r
             long q=(long)session.createQuery(hql.toString()).uniqueResult();\r
             session.flush();\r
-            session.close();\r
             return (int)q;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing PerformanceHeaderServiceImpl getAllCount. Details:" + e.getMessage());\r
@@ -193,7 +187,7 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
                int allRow =this.getAllCount(performanceHeder,currentPage,pageSize);\r
                int offset = page.countOffset(currentPage, pageSize);\r
                \r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql =new StringBuffer("from PerformanceHeader a where 1=1");\r
             if (null == performanceHeder) {\r
                 //logger.error("PerformanceHeaderServiceImpl queryPerformanceHeader performanceHeder is null!");\r
@@ -276,7 +270,6 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
                 }\r
             }\r
             logger.info("PerformanceHeaderServiceImpl queryPerformanceHeader: performanceHeder={}", performanceHeder);\r
-            Session session = sessionFactory.openSession();\r
             Query query = session.createQuery(hql.toString());\r
             query.setFirstResult(offset);\r
             query.setMaxResults(pageSize);\r
@@ -286,7 +279,6 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
             page.setTotalRecords(allRow);\r
             page.setList(list);\r
             session.flush();\r
-            session.close();\r
             return page;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryPerformanceHeader. Details:" + e.getMessage());\r
@@ -298,15 +290,13 @@ public class PerformanceHeaderServiceImpl implements PerformanceHeaderService {
        @SuppressWarnings("unchecked")\r
        @Override\r
        public List<PerformanceHeader> queryId(String[] id) {\r
-               try {\r
+               try(Session session = sessionFactory.openSession();) {\r
                        if(id.length==0) {\r
                                logger.error("PerformanceHeaderServiceImpl queryId is null!");\r
                        }\r
                        List<PerformanceHeader> list = new ArrayList<PerformanceHeader>();\r
-                       Session session = sessionFactory.openSession();\r
-                       Query query = session.createQuery("from PerformanceHeader a where a.eventId IN (:alist)");\r
+                       Query query = session.createQuery("from PerformanceHeader a where a.eventName IN (:alist)");\r
                        list = query.setParameterList("alist", id).list();\r
-            session.close();\r
                        return list;\r
                } catch (Exception e) {\r
                        logger.error("exception occurred while performing PerformanceHeaderServiceImpl queryId. Details:" + e.getMessage());\r
index a1a9a0d..0b4371e 100755 (executable)
@@ -47,17 +47,15 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
 \r
        @Override\r
        public String savePerformanceInformation(PerformanceInformation performanceInformation) {\r
-                try {\r
+                try(Session session = sessionFactory.openSession();) {\r
                    if (null == performanceInformation) {\r
                        logger.error("performanceInformation savePerformanceInformation performanceInformation is null!");\r
                    }\r
                    logger.info("PerformanceInformationServiceImpl savePerformanceInformation: performanceInformation={}", performanceInformation);\r
-                   Session session = sessionFactory.openSession();\r
                    Transaction tx = session.beginTransaction();     \r
                    session.save(performanceInformation);\r
                    tx.commit();\r
                    session.flush();\r
-                   session.close();\r
                    return "1";\r
                } catch (Exception e) {\r
                    logger.error("exception occurred while performing PerformanceInformationServiceImpl savePerformanceInformation. Details:" + e.getMessage());\r
@@ -69,17 +67,15 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
 \r
        @Override\r
        public String updatePerformanceInformation(PerformanceInformation performanceInformation) {\r
-               try {\r
+               try(Session session = sessionFactory.openSession();) {\r
             if (null == performanceInformation) {\r
                 logger.error("performanceInformation updatePerformanceInformation performanceInformation is null!");\r
             }\r
             logger.info("PerformanceInformationServiceImpl updatePerformanceInformation: performanceInformation={}", performanceInformation);\r
-            Session session = sessionFactory.openSession();\r
             Transaction tx = session.beginTransaction();     \r
             session.update(performanceInformation);\r
             tx.commit();\r
             session.flush();\r
-            session.close();\r
             return "1";\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing PerformanceInformationServiceImpl updatePerformanceInformation. Details:" + e.getMessage());\r
@@ -89,7 +85,7 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
 \r
 \r
        public int getAllCount(PerformanceInformation performanceInformation, int currentPage, int pageSize) {\r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql = new StringBuffer("select count(*) from PerformanceInformation a where 1=1");\r
                        if (null == performanceInformation) {\r
                 //logger.error("AlarmsInformationServiceImpl getAllCount performanceInformation is null!");\r
@@ -115,10 +111,8 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
                        hql.append(" and a.updateTime like '%"+ver+"%'");\r
                 }\r
             }\r
-            Session session = sessionFactory.openSession();\r
             long q=(long)session.createQuery(hql.toString()).uniqueResult();\r
             session.flush();\r
-            session.close();\r
             return (int)q;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing PerformanceInformationServiceImpl getAllCount. Details:" + e.getMessage());\r
@@ -134,7 +128,7 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
                int allRow =this.getAllCount(performanceInformation,currentPage,pageSize);\r
                int offset = page.countOffset(currentPage, pageSize);\r
                \r
-               try{\r
+               try(Session session = sessionFactory.openSession();){\r
                        StringBuffer hql =new StringBuffer("from PerformanceInformation a where 1=1 ");\r
             if (null == performanceInformation) {\r
                 //logger.error("AlarmsInformationServiceImpl queryPerformanceInformation performanceInformation is null!");\r
@@ -161,7 +155,6 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
                 }\r
             } \r
             logger.info("PerformanceInformationServiceImpl queryPerformanceInformation: performanceInformation={}", performanceInformation);\r
-            Session session = sessionFactory.openSession();\r
             Query query = session.createQuery(hql.toString());\r
             query.setFirstResult(offset);\r
             query.setMaxResults(pageSize);\r
@@ -172,7 +165,6 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
             page.setTotalRecords(allRow);\r
             page.setList(list);\r
             session.flush();\r
-            session.close();\r
             return page;\r
         } catch (Exception e) {\r
             logger.error("exception occurred while performing PerformanceInformationServiceImpl queryPerformanceInformation. Details:" + e.getMessage());\r
@@ -184,17 +176,16 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
        @SuppressWarnings("unchecked")\r
        @Override\r
        public List<PerformanceInformation> queryId(String[] id) {\r
-               try {\r
+               try(Session session = sessionFactory.openSession();) {\r
                        if(id.length==0) {\r
-                               logger.error("PerformanceInformationServiceImpl queryId is null!");\r
+                               //logger.error("PerformanceInformationServiceImpl queryId is null!");\r
                        }\r
                        List<PerformanceInformation> list = new ArrayList<>();\r
-                       Session session = sessionFactory.openSession();\r
                        Query query = session.createQuery("from PerformanceInformation a where a.eventId IN (:alist)");\r
                        list = query.setParameterList("alist", id).list();\r
-            session.close();\r
                        return list;\r
                } catch (Exception e) {\r
+                       e.printStackTrace();\r
                        logger.error("exception occurred while performing PerformanceInformationServiceImpl queryId. Details:" + e.getMessage());\r
                        return null;\r
                }\r
@@ -204,15 +195,13 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
        @SuppressWarnings("unchecked")\r
        @Override\r
        public List<PerformanceInformation> queryDateBetween(String eventId,Date startDate, Date endDate) {\r
-               try {\r
+               try(Session session = sessionFactory.openSession();) {\r
                        List<PerformanceInformation> list = new ArrayList<>();\r
-                       Session session = sessionFactory.openSession();\r
                        Query query = session.createQuery("from PerformanceInformation a where a.eventId = :eventId and a.createTime BETWEEN :startDate and :endDate");\r
                        list = query.setParameter("eventId",eventId).setParameter("startDate", startDate).setParameter("endDate",endDate).list();\r
-                       session.close();\r
                        return list;\r
                } catch (Exception e) {\r
-                       logger.error("exception occurred while performing PerformanceInformationServiceImpl queryId. Details:" + e.getMessage());\r
+                       logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDateBetween. Details:" + e.getMessage());\r
                        return null;\r
                }\r
        }\r
@@ -228,7 +217,7 @@ public class PerformanceInformationServiceImpl implements PerformanceInformation
                        sum = Integer.parseInt(query.setParameter("eventId",eventId).setParameter("name",name).setParameter("startDate", startDate).setParameter("endDate",endDate).uniqueResult().toString());\r
                        return sum;\r
                } catch (Exception e) {\r
-                       logger.error("exception occurred while performing PerformanceInformationServiceImpl queryId. Details:" + e.getMessage());\r
+                       logger.error("exception occurred while performing PerformanceInformationServiceImpl queryDataBetweenSum. Details:" + e.getMessage());\r
                        return 0;\r
                }\r
        }\r
index 3184dc0..0d294d1 100755 (executable)
@@ -49,7 +49,7 @@ public class DateUtils {
             if(day == 0)
                 ldt = ldt.withDayOfMonth(1);
         } else
-            ldt = ldt.withDayOfMonth(ldt.getDayOfMonth()-1);
+            ldt = ldt.withDayOfMonth(ldt.getDayOfMonth()-1<1?ldt.getDayOfMonth():ldt.getDayOfMonth()+-1);
         if(hour >= 0){
             if(hour == 0)
                 ldt = ldt.withHour(0);
diff --git a/server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java b/server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java
new file mode 100644 (file)
index 0000000..6d6116a
--- /dev/null
@@ -0,0 +1,292 @@
+/*
+ * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     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.
+ */
+package org.onap.usecaseui.server.util;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import lombok.Getter;
+import lombok.Setter;
+import org.glassfish.jersey.client.ClientConfig;
+import org.onap.usecaseui.server.bean.AlarmsHeader;
+import org.onap.usecaseui.server.bean.AlarmsInformation;
+import org.onap.usecaseui.server.bean.PerformanceHeader;
+import org.onap.usecaseui.server.bean.PerformanceInformation;
+import org.onap.usecaseui.server.service.AlarmsHeaderService;
+import org.onap.usecaseui.server.service.AlarmsInformationService;
+import org.onap.usecaseui.server.service.PerformanceHeaderService;
+import org.onap.usecaseui.server.service.PerformanceInformationService;
+import org.onap.usecaseui.server.service.impl.AlarmsHeaderServiceImpl;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Controller;
+
+import javax.annotation.Resource;
+import javax.ws.rs.client.Client;
+import javax.ws.rs.client.ClientBuilder;
+import javax.ws.rs.client.WebTarget;
+import javax.ws.rs.core.Response;
+import java.io.*;
+import java.util.*;
+
+@org.springframework.context.annotation.Configuration
+@EnableAspectJAutoProxy
+public class DmaapSubscriber implements Runnable {
+
+    private Logger logger = LoggerFactory.getLogger(DmaapSubscriber.class);
+
+    private String url;
+    private String topic;
+    private String consumerGroup;
+    private String consumer;
+    private int timeout ;
+
+    private boolean isActive = true;
+
+    @Resource(name = "AlarmsHeaderService")
+    private AlarmsHeaderService alarmsHeaderService;
+
+    @Resource(name = "AlarmsInformationService")
+    private AlarmsInformationService alarmsInformationService;
+
+    @Resource(name = "PerformanceHeaderService")
+    private PerformanceHeaderService performanceHeaderService;
+
+    @Resource(name = "PerformanceInformationService")
+    private PerformanceInformationService performanceInformationService;
+
+    private void subscribe(){
+        String response = "";
+        try{
+            response = getDMaaPData();
+            logger.info(response);
+            try{
+                ObjectMapper objMapper = new ObjectMapper();
+                Map<String,Map<String,Map<String,Object>>> maps = objMapper.readValue(response,Map.class);
+                AlarmsHeader alarm_header = new AlarmsHeader();
+                List<AlarmsInformation> alarm_informations = new ArrayList<>();
+                PerformanceHeader performance_header = new PerformanceHeader();
+                List<PerformanceInformation> performance_infomations = new ArrayList<>();
+                maps.forEach( (k,v) -> {
+                    maps.get(k).forEach( (k1,v1) ->{
+                        if (maps.get(k).get(k1).containsValue("fault") || maps.get(k).containsKey("faultFields")){
+                            if (k1.equals("commonEventHeader")){
+                                maps.get(k).get(k1).forEach( (k2,v2 ) ->{
+                                    if (k2.equals("version"))
+                                        alarm_header.setVersion(v2.toString());
+                                    if (k2.equals("eventName"))
+                                        alarm_header.setEventName(v2.toString());
+                                    if (k2.equals("domain"))
+                                        alarm_header.setDomain(v2.toString());
+                                    if (k2.equals("eventId"))
+                                        alarm_header.setEventId(v2.toString());
+                                    if (k2.equals("eventType"))
+                                        alarm_header.setEventType(v2.toString());
+                                    if (k2.equals("nfcNamingCode"))
+                                        alarm_header.setNfcNamingCode(v2.toString());
+                                    if (k2.equals("nfNamingCode"))
+                                        alarm_header.setNfNamingCode(v2.toString());
+                                    if (k2.equals("sourceId"))
+                                        alarm_header.setSourceId(v2.toString());
+                                    if (k2.equals("sourceName"))
+                                        alarm_header.setSourceName(v2.toString());
+                                    if (k2.equals("reportingEntityId"))
+                                        alarm_header.setReportingEntityId(v2.toString());
+                                    if (k2.equals("reportingEntityName"))
+                                        alarm_header.setReportingEntityName(v2.toString());
+                                    if (k2.equals("priority"))
+                                        alarm_header.setPriority(v2.toString());
+                                    if (k2.equals("startEpochMicrosec"))
+                                        alarm_header.setStartEpochMicrosec(v2.toString());
+                                    if (k2.equals("lastEpochMicrosec"))
+                                        alarm_header.setLastEpochMicroSec(v2.toString());
+                                    if (k2.equals("sequence"))
+                                        alarm_header.setSequence(v2.toString());
+                                } );
+                            }
+                            else if (k1.equals("faultFields")) {
+                                maps.get(k).get(k1).forEach((k3, v3) -> {
+                                    if (k3.equals("faultFieldsVersion"))
+                                        alarm_header.setFaultFieldsVersion(v3.toString());
+                                    if (k3.equals("eventSeverity"))
+                                        alarm_header.setEventServrity(v3.toString());
+                                    if (k3.equals("eventSourceType"))
+                                        alarm_header.setEventSourceType(v3.toString());
+                                    if (k3.equals("eventCategory"))
+                                        alarm_header.setEventCategory(v3.toString());
+                                    if (k3.equals("alarmCondition"))
+                                        alarm_header.setAlarmCondition(v3.toString());
+                                    if (k3.equals("specificProblem"))
+                                        alarm_header.setSpecificProblem(v3.toString());
+                                    if (k3.equals("vfStatus"))
+                                        alarm_header.setVfStatus(v3.toString());
+                                    if (k3.equals("alarmInterfaceA"))
+                                        alarm_header.setAlarmInterfaceA(v3.toString());
+                                    if (k3.equals("alarmAdditionalInformation")) {
+                                        try {
+                                            List<Map<String,Object>> m = (List<Map<String, Object>>) v3;
+                                            m.forEach( i -> {
+                                                i.forEach( (k4,v4) -> {
+                                                    alarm_informations.add(new AlarmsInformation(k4,v4.toString(),alarm_header.getEventName(),new Date(),new Date()));
+                                                });
+                                            } );
+                                            alarm_header.setCreateTime(new Date());
+                                            if (alarm_header.getEventName().contains("Cleared")){
+                                                alarm_header.setStatus("3");
+                                                alarmsHeaderService.saveAlarmsHeader(alarm_header);
+                                                alarm_informations.forEach( information ->
+                                                        alarmsInformationService.saveAlarmsInformation(information));
+                                                AlarmsHeader header1 = new AlarmsHeader();
+                                                header1.setEventName(alarm_header.getEventName().substring(0,alarm_header.getEventName().indexOf("Cleared")));
+                                                List<AlarmsHeader> alarmsHeaders = alarmsHeaderService.queryAlarmsHeader(header1,1,10).getList();
+                                                alarmsHeaders.forEach( alarms -> {
+                                                    alarms.setStatus("2");
+                                                    alarmsHeaderService.updateAlarmsHeader(alarms);
+                                                } );
+                                            }else{
+                                                alarm_header.setStatus("1");
+                                                logger.info(alarm_header.toString() +"");
+                                                alarmsHeaderService.saveAlarmsHeader(alarm_header);
+                                                alarm_informations.forEach( information ->
+                                                        alarmsInformationService.saveAlarmsInformation(information));
+                                            }
+                                        } catch (Exception e) {
+                                            logger.error("convert alarmAdditionalInformation error:"+e.getMessage());
+                                        }
+                                    }
+                                });
+
+                            }
+                        }else if(maps.get(k).get(k1).containsValue("measurementsForVfScaling") || maps.get(k).containsKey("measurementsForVfScalingFields")){
+                            if (k1.equals("commonEventHeader"))
+                                maps.get(k).get(k1).forEach( (k2,v2) ->{
+                                    if (k2.equals("version"))
+                                        performance_header.setVersion(v2.toString());
+                                    if (k2.equals("eventName"))
+                                        performance_header.setEventName(v2.toString());
+                                    if (k2.equals("domain"))
+                                        performance_header.setDomain(v2.toString());
+                                    if (k2.equals("eventId"))
+                                        performance_header.setEventId(v2.toString());
+                                    if (k2.equals("eventType"))
+                                        performance_header.setEventType(v2.toString());
+                                    if (k2.equals("nfcNamingCode"))
+                                        performance_header.setNfcNamingCode(v2.toString());
+                                    if (k2.equals("nfNamingCode"))
+                                        performance_header.setNfNamingCode(v2.toString());
+                                    if (k2.equals("sourceId"))
+                                        performance_header.setSourceId(v2.toString());
+                                    if (k2.equals("sourceName"))
+                                        performance_header.setSourceName(v2.toString());
+                                    if (k2.equals("reportingEntityId"))
+                                        performance_header.setReportingEntityId(v2.toString());
+                                    if (k2.equals("reportingEntityName"))
+                                        performance_header.setReportingEntityName(v2.toString());
+                                    if (k2.equals("priority"))
+                                        performance_header.setPriority(v2.toString());
+                                    if (k2.equals("startEpochMicrosec"))
+                                        performance_header.setStartEpochMicrosec(v2.toString());
+                                    if (k2.equals("lastEpochMicrosec"))
+                                        performance_header.setLastEpochMicroSec(v2.toString());
+                                    if (k2.equals("sequence"))
+                                        performance_header.setSequence(v2.toString());
+                                } );
+                            else if(k1.equals("measurementsForVfScalingFields")) {
+                                maps.get(k).get(k1).forEach((k3, v3) -> {
+                                    if (k3.equals("measurementsForVfScalingVersion"))
+                                        performance_header.setMeasurementsForVfScalingVersion(v3.toString());
+                                    if (k3.equals("measurementInterval"))
+                                        performance_header.setMeasurementInterval(v3.toString());
+                                    if (k3.equals("additionalMeasurements")){
+                                        try {
+                                            List<Map<String,Object>> m = (List<Map<String, Object>>) v3;
+                                            m.forEach( i -> {
+                                                i.forEach( (k4,v4) -> {
+                                                    performance_infomations.add(new PerformanceInformation(k4,v4.toString(),performance_header.getEventName(),new Date(),new Date()));
+                                                });
+                                            } );
+                                        } catch (Exception e) {
+                                            logger.error("convert additionalMeasurements error:"+e.getMessage());
+                                        }
+
+                                    }
+                                });
+                                performance_header.setCreateTime(new Date());
+                                performance_header.setUpdateTime(new Date());
+                                performanceHeaderService.savePerformanceHeader(performance_header);
+                                performance_infomations.forEach( information ->
+                                        performanceInformationService.savePerformanceInformation(information));
+                            }
+                        }
+
+                    });
+                });
+            }catch (Exception e){
+                e.printStackTrace();
+                logger.error("dispose of Data failed:"+e.getMessage());
+            }
+        }catch (Exception e){
+            logger.error("getDMaaP Information failed :"+e.getMessage());
+        }
+    }
+
+    private String getDMaaPData(){
+        Client client = ClientBuilder.newClient(new ClientConfig());
+        WebTarget webTarget = client.target(url +"/" + topic +"/"+ consumerGroup +"/"+ consumer);
+        Response response = webTarget.queryParam("timeout",timeout).request().get();
+        return response.readEntity(String.class);
+    }
+
+    private void initConfig(){
+        InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dmaap.properties");
+        Properties p = new Properties();
+        try {
+            p.load(inputStream);
+            this.url = p.getProperty("dmaap.url");
+            this.topic = p.getProperty("dmaap.topic");
+            this.consumerGroup = p.getProperty("dmaap.consumerGroup");
+            this.consumer = p.getProperty("dmaap.consumer");
+            this.timeout = Integer.parseInt(p.getProperty("dmaap.timeout"));
+        } catch (IOException e1) {
+            logger.error("get configuration file arise error :"+e1.getMessage());
+        }
+
+    }
+
+    public void run() {
+        try{
+            initConfig();
+            while(isActive){
+               subscribe();
+            }
+        }catch (Exception e){
+            try {
+                Thread.sleep(10000);
+            } catch (InterruptedException e1) {
+                e1.printStackTrace();
+            }
+            logger.error("subscribe raise error :"+e.getCause());
+        }
+    }
+
+    public void stopTask(){
+        if (isActive)
+            isActive = false;
+    }
+
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/util/ResponseUtil.java b/server/src/main/java/org/onap/usecaseui/server/util/ResponseUtil.java
new file mode 100644 (file)
index 0000000..8e2f39c
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     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.
+ */
+package org.onap.usecaseui.server.util;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+
+public class ResponseUtil {
+
+    private static Logger logger = LoggerFactory.getLogger(ResponseUtil.class);
+
+    public static boolean responseDownload(String filePath, HttpServletResponse response){
+        if (null != response){
+            response.setCharacterEncoding("utf-8");
+            response.setContentType("application/csv");
+            response.setHeader("Content-Disposition","attachment;filename="+filePath);
+            try(InputStream is = new FileInputStream(filePath);
+                OutputStream os = response.getOutputStream()){
+                byte[] b = new byte[2048];
+                int length;
+                while ((length = is.read(b)) > 0) {
+                    os.write(b, 0, length);
+                }
+                return true;
+            }catch (IOException e){
+                logger.error("download csv File error :"+e.getMessage());
+                return false;
+            }
+        }else{
+            logger.error("csvFile generate success,but response is null,don't download to local");
+            return false;
+        }
+
+    }
+
+}
diff --git a/server/src/main/resources/dmaap.properties b/server/src/main/resources/dmaap.properties
new file mode 100644 (file)
index 0000000..62ea455
--- /dev/null
@@ -0,0 +1,20 @@
+##
+## Copyright (C) 2017 CMCC, Inc. and others. All rights reserved.
+##
+## Licensed under the Apache License, Version 2.0 (the "License");
+## you may not use this file except in compliance with the License.
+## You may obtain a copy of the License at
+##
+##     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.
+##
+dmaap.url = http://
+dmaap.topic = unauthenticated.SEC_FAULT_OUTPUT
+dmaap.consumerGroup = uuiGroup
+dmaap.conusmer = uuiUser
+dmaap.timeout = 10000
\ No newline at end of file
index a674cf2..2fbfaad 100755 (executable)
@@ -56,12 +56,5 @@ public class AlarmControllerTest {
         System.out.println(alarmController.generateCsvFile(null,new String[]{"110"}));
     }
 
-    @Test
-    public void update() throws JsonProcessingException {
-        System.out.println(alarmController.updateStatus(null,new String[]{"110"},new String[]{"1"},"s"));
-        System.out.println(alarmController.updateStatus(null,new String[]{"110","1101"},new String[]{"1","1"},"many"));
-        System.out.println(alarmController.updateStatus(null,new String[]{"110"},new String[]{"1"},"vf"));
-
-    }
 
 }
index 4b90e86..65ef870 100755 (executable)
@@ -71,7 +71,7 @@ public class PerformanceControllerTest {
         p.put("value","110");
         p.put("createTime","110");
         p.put("updateTime","110");
-        System.out.println(performanceController.generateDiaCsvFile(null,p));
+        //System.out.println(performanceController.generateDiaCsvFile(null,p));
     }
 
     @Test