1 package org.openecomp.portalapp.widget.service.impl;
4 import java.io.FileOutputStream;
5 import java.io.InputStream;
6 import java.io.OutputStream;
7 import java.util.HashSet;
9 import javax.transaction.Transactional;
11 import org.openecomp.portalapp.widget.controller.WidgetsCatalogController;
12 import org.openecomp.portalapp.widget.domain.MicroserviceData;
13 import org.openecomp.portalapp.widget.domain.MicroserviceParameter;
14 import org.openecomp.portalapp.widget.domain.RoleApp;
15 import org.openecomp.portalapp.widget.domain.WidgetCatalog;
16 import org.openecomp.portalapp.widget.service.InitializationService;
17 import org.openecomp.portalapp.widget.service.MicroserviceService;
18 import org.openecomp.portalapp.widget.service.StorageService;
19 import org.openecomp.portalapp.widget.service.WidgetCatalogService;
20 import org.slf4j.Logger;
21 import org.slf4j.LoggerFactory;
22 import org.springframework.beans.factory.annotation.Autowired;
23 import org.springframework.beans.factory.annotation.Value;
24 import org.springframework.context.annotation.EnableAspectJAutoProxy;
25 import org.springframework.stereotype.Service;
27 @Service("initService")
29 @org.springframework.context.annotation.Configuration
30 @EnableAspectJAutoProxy
31 public class InitializationServiceImpl implements InitializationService{
33 private static final String BASIC_AUTH = "Basic Authentication";
34 private static final String PARAMETER_KEY = "resourceType";
35 private static final Logger logger = LoggerFactory.getLogger(WidgetsCatalogController.class);
38 WidgetCatalogService widgetCatalogService;
41 StorageService storageService;
44 MicroserviceService microserviceService;
46 @Value("${account.user.name}")
49 @Value("${account.user.password}")
50 String account_password;
52 @Value("${initialization.widgetData.url}")
53 String widgetData_url;
56 public void initialize() {
57 initCommonWidget("News");
58 initCommonWidget("Events");
59 initCommonWidget("Resources");
62 private void initCommonWidget(String name){
64 final String newServiceName = name + " Microservice";
65 final String newWidgetName = name + " Widget";
67 Long serviceId = microserviceService.getMicroserviceIdByName(newServiceName);
69 if(serviceId == null){
70 MicroserviceData newService = new MicroserviceData();
71 newService.setName(newServiceName);
72 newService.setDesc(name);
73 newService.setAppId(1);
74 newService.setUrl(widgetData_url);
75 newService.setSecurityType(BASIC_AUTH);
76 newService.setUsername(account_user);
77 newService.setPassword(account_password);
78 newService.setActive("Y");
79 serviceId = microserviceService.saveMicroserivce(newService);
82 MicroserviceParameter parameter = new MicroserviceParameter();
83 parameter.setServiceId(serviceId);
84 parameter.setPara_key(PARAMETER_KEY);
85 String parameter_value = null;
86 switch(name.toLowerCase()){
88 parameter_value = "NEWS";
91 parameter_value = "EVENTS";
94 parameter_value = "IMPORTANTRESOURCES";
97 parameter.setPara_value(parameter_value);
98 microserviceService.saveMicroserviceParameter(parameter);
101 if(!widgetCatalogService.getWidgetIdByName(newWidgetName)){
102 WidgetCatalog newWidget = new WidgetCatalog();
103 newWidget.setName(newWidgetName);
104 newWidget.setDesc(name);
105 newWidget.setAllowAllUser("1");
106 String fileLocation = name.toLowerCase() + "-widget.zip";
107 newWidget.setFileLocation(fileLocation);
108 newWidget.setServiceId(serviceId);
109 newWidget.setWidgetRoles(new HashSet<RoleApp>());
110 long widgetId = widgetCatalogService.saveWidgetCatalog(newWidget);
112 File file = new File("/tmp/" + fileLocation);
115 InputStream fileInputStream = this.getClass().getClassLoader().getResourceAsStream(fileLocation);
116 OutputStream outputStream = new FileOutputStream(file);
118 byte[] bytes = new byte[4096];
119 while ((read = fileInputStream.read(bytes)) != -1) {
120 outputStream.write(bytes, 0, read);
123 logger.error("Exception occurred while performing InitializationServiceImpl.initCommonWidget in widget microservices. Details:" + e.getMessage());
125 storageService.initSave(file, newWidget, widgetId);