[PORTAL-16 PORTAL-18] Widget ms; staging
[portal.git] / ecomp-portal-widget-ms / src / main / java / org / openecomp / portalapp / widget / service / impl / MicroserviceServiceImpl.java
diff --git a/ecomp-portal-widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/MicroserviceServiceImpl.java b/ecomp-portal-widget-ms/src/main/java/org/openecomp/portalapp/widget/service/impl/MicroserviceServiceImpl.java
new file mode 100644 (file)
index 0000000..395d428
--- /dev/null
@@ -0,0 +1,87 @@
+package org.openecomp.portalapp.widget.service.impl;
+
+import java.util.List;
+
+import javax.transaction.Transactional;
+
+import org.hibernate.Criteria;
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.hibernate.criterion.Restrictions;
+import org.openecomp.portalapp.widget.domain.MicroserviceData;
+import org.openecomp.portalapp.widget.domain.MicroserviceParameter;
+import org.openecomp.portalapp.widget.domain.WidgetCatalog;
+import org.openecomp.portalapp.widget.service.MicroserviceService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Service;
+
+/**
+ * TODO: moved all microservice-related code (domain, controller, service)
+ * from ecomp portal Backend to widget microservice
+ */
+@Service("microserviceService")
+@Transactional
+@org.springframework.context.annotation.Configuration
+@EnableAspectJAutoProxy
+public class MicroserviceServiceImpl implements MicroserviceService{
+
+       private static final Logger logger = LoggerFactory.getLogger(MicroserviceServiceImpl.class);
+       
+       @Autowired
+       private SessionFactory sessionFactory;
+       
+       @Override
+       public Long saveMicroserivce(MicroserviceData newService) {
+               try{
+                       logger.debug("MicroserviceServiceImpl.saveMicroserivce: microservice={}", newService);
+                       Session session = sessionFactory.openSession();
+                       Transaction tx = session.beginTransaction();            
+                       session.save(newService);
+                       tx.commit();
+                       session.flush();
+                       session.close();
+               }
+               catch(Exception e){
+                       logger.error("Exception occurred while performing MicroserviceServiceImpl.saveMicroserivce in widget microservices. Details:" + e.getMessage());
+               }
+               return newService.getId();
+       }
+
+       @Override
+       public void saveMicroserviceParameter(MicroserviceParameter newParameter) {
+               try{
+                       logger.debug("MicroserviceServiceImpl.saveMicroserviceData: microservice={}", newParameter);
+                       Session session = sessionFactory.openSession();
+                       Transaction tx = session.beginTransaction();            
+                       session.save(newParameter);
+                       tx.commit();
+                       session.flush();
+                       session.close();
+               }
+               catch(Exception e){
+                       logger.error("Exception occurred while performing MicroserviceServiceImpl.saveMicroserviceData in widget microservices. Details:" + e.getMessage());
+               }
+       }
+       
+       @SuppressWarnings("unchecked")
+       @Override
+       public Long getMicroserviceIdByName(String newServiceName) {
+               
+               Session session = sessionFactory.openSession();
+               Criteria criteria = session.createCriteria(MicroserviceData.class)
+                               .add(Restrictions.eq("name", newServiceName))
+                               .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
+               
+               List<MicroserviceData> services = criteria.list();
+               logger.debug("MicroserviceServiceImpl.getMicroserviceByName: result={}", services);
+               session.flush();
+               session.close();
+               
+               return (services.size() > 0) ? services.get(0).getId() : null;
+       }
+       
+}