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