Merge "Used entrySet instead of keySet"
[policy/engine.git] / POLICY-SDK-APP / src / main / java / org / onap / policy / daoImp / SystemLogDbDaoImpl.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP Policy Engine
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.policy.daoImp;
22
23
24 import java.util.List;
25
26 import org.hibernate.Criteria;
27 import org.hibernate.Session;
28 import org.springframework.stereotype.Service;
29
30 import org.onap.policy.xacml.api.XACMLErrorConstants;
31
32 import org.hibernate.Transaction;
33 import org.hibernate.criterion.Restrictions;
34 import org.onap.policy.conf.HibernateSession;
35 import org.onap.policy.controller.PolicyController;
36 import org.onap.policy.dao.SystemLogDbDao;
37 import org.onap.policy.rest.jpa.SystemLogDB;
38 import org.onap.policy.common.logging.flexlogger.FlexLogger; 
39 import org.onap.policy.common.logging.flexlogger.Logger;
40
41
42 @Service("SystemLogDbDao")
43 public class SystemLogDbDaoImpl implements SystemLogDbDao {
44         private static final Logger logger = FlexLogger.getLogger(SystemLogDbDaoImpl.class);
45         
46         private static boolean jUnit = false;
47         
48         public static boolean isjUnit() {
49                 return jUnit;
50         }
51
52         public static void setjUnit(boolean jUnit) {
53                 SystemLogDbDaoImpl.jUnit = jUnit;
54         }
55
56         @SuppressWarnings("unchecked")
57         @Override
58         public List<SystemLogDB> getLoggingData() {
59                 Session session = HibernateSession.getSession();
60                 Transaction tx = session.beginTransaction();
61                 List<SystemLogDB> system = null;
62         try {
63                 String sqlWhere = null;
64                 if(jUnit){
65                         sqlWhere = "";
66                 }else{
67                         sqlWhere = "date > DATE_SUB(curdate(), INTERVAL 5 DAY) ORDER BY date DESC limit "+PolicyController.getLogTableLimit()+"";
68                 }
69                 Criteria cr = session.createCriteria(SystemLogDB.class);
70                 cr.add(Restrictions.sqlRestriction(sqlWhere));
71             system = cr.list();
72                         tx.commit();
73                 } catch (Exception e) {
74                         logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying SystemLogDB Table"+e);      
75                 }finally{
76                         try{
77                                 session.close();
78                         }catch(Exception e1){
79                                 logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
80                         }
81                 }
82                 return system;
83         }
84
85         @SuppressWarnings("unchecked")
86         @Override
87         public List<SystemLogDB> getSystemAlertData() {
88                 Session session = HibernateSession.getSession();;
89                 Transaction tx = session.beginTransaction();
90                 List<SystemLogDB> system = null;
91         try {
92                 String sqlWhere = null;
93                 if(jUnit){
94                         sqlWhere = "";
95                 }else{
96                         sqlWhere = "date > DATE_SUB(curdate(), INTERVAL 5 DAY) and logtype = 'error' ORDER BY date DESC limit "+PolicyController.getSystemAlertTableLimit()+"";
97                 }
98                 Criteria cr = session.createCriteria(SystemLogDB.class);
99                 cr.add(Restrictions.sqlRestriction(sqlWhere));
100             system = cr.list();
101                         tx.commit();
102                 } catch (Exception e) {
103                         logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Querying SystemLogDB Table"+e);      
104                 }finally{
105                         try{
106                                 session.close();
107                         }catch(Exception e1){
108                                 logger.error(XACMLErrorConstants.ERROR_PROCESS_FLOW + "Error While Closing Connection/Statement"+e1);
109                         }
110                 }
111                 return system;
112         }
113
114 }