80c45a2ece114c08750baad0746033a7572b6257
[portal.git] / ecomp-portal-widget-ms / widget-ms / src / main / java / org / openecomp / portalapp / widget / service / impl / MicroserviceServiceImpl.java
1 package org.openecomp.portalapp.widget.service.impl;
2
3 import java.util.List;
4
5 import javax.transaction.Transactional;
6
7 import org.hibernate.Criteria;
8 import org.hibernate.Session;
9 import org.hibernate.SessionFactory;
10 import org.hibernate.Transaction;
11 import org.hibernate.criterion.Restrictions;
12 import org.openecomp.portalapp.widget.domain.MicroserviceData;
13 import org.openecomp.portalapp.widget.domain.MicroserviceParameter;
14 import org.openecomp.portalapp.widget.service.MicroserviceService;
15 import org.slf4j.Logger;
16 import org.slf4j.LoggerFactory;
17 import org.springframework.beans.factory.annotation.Autowired;
18 import org.springframework.context.annotation.EnableAspectJAutoProxy;
19 import org.springframework.stereotype.Service;
20
21 /**
22  * TODO: moved all microservice-related code (domain, controller, service)
23  * from ecomp portal Backend to widget microservice
24  */
25 @Service("microserviceService")
26 @Transactional
27 @org.springframework.context.annotation.Configuration
28 @EnableAspectJAutoProxy
29 public class MicroserviceServiceImpl implements MicroserviceService{
30
31         private static final Logger logger = LoggerFactory.getLogger(MicroserviceServiceImpl.class);
32         
33         @Autowired
34         private SessionFactory sessionFactory;
35         
36         @Override
37         public Long saveMicroserivce(MicroserviceData newService) {
38                 try{
39                         logger.debug("MicroserviceServiceImpl.saveMicroserivce: microservice={}", newService);
40                         Session session = sessionFactory.openSession();
41                         Transaction tx = session.beginTransaction();            
42                         session.save(newService);
43                         tx.commit();
44                         session.flush();
45                         session.close();
46                 }
47                 catch(Exception e){
48                         logger.error("Exception occurred while performing MicroserviceServiceImpl.saveMicroserivce in widget microservices. Details:" + e.getMessage());
49                 }
50                 return newService.getId();
51         }
52
53         @Override
54         public void saveMicroserviceParameter(MicroserviceParameter newParameter) {
55                 try{
56                         logger.debug("MicroserviceServiceImpl.saveMicroserviceData: microservice={}", newParameter);
57                         Session session = sessionFactory.openSession();
58                         Transaction tx = session.beginTransaction();            
59                         session.save(newParameter);
60                         tx.commit();
61                         session.flush();
62                         session.close();
63                 }
64                 catch(Exception e){
65                         logger.error("Exception occurred while performing MicroserviceServiceImpl.saveMicroserviceData in widget microservices. Details:" + e.getMessage());
66                 }
67         }
68         
69         @SuppressWarnings("unchecked")
70         @Override
71         public Long getMicroserviceIdByName(String newServiceName) {
72                 
73                 Session session = sessionFactory.openSession();
74                 Criteria criteria = session.createCriteria(MicroserviceData.class)
75                                 .add(Restrictions.eq("name", newServiceName))
76                                 .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
77                 
78                 List<MicroserviceData> services = criteria.list();
79                 logger.debug("MicroserviceServiceImpl.getMicroserviceByName: result={}", services);
80                 session.flush();
81                 session.close();
82                 
83                 return (services.size() > 0) ? services.get(0).getId() : null;
84         }
85         
86 }