summaryrefslogtreecommitdiffstats
path: root/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java')
-rw-r--r--ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java137
1 files changed, 137 insertions, 0 deletions
diff --git a/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java
new file mode 100644
index 00000000..cbc0c9d0
--- /dev/null
+++ b/ecomp-portal-widget-ms/widget-ms/src/main/java/org/onap/portalapp/widget/service/impl/InitializationServiceImpl.java
@@ -0,0 +1,137 @@
+package org.onap.portalapp.widget.service.impl;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.HashSet;
+
+import javax.transaction.Transactional;
+
+import org.onap.portalapp.widget.domain.MicroserviceData;
+import org.onap.portalapp.widget.domain.MicroserviceParameter;
+import org.onap.portalapp.widget.domain.RoleApp;
+import org.onap.portalapp.widget.domain.WidgetCatalog;
+import org.onap.portalapp.widget.service.InitializationService;
+import org.onap.portalapp.widget.service.MicroserviceService;
+import org.onap.portalapp.widget.service.StorageService;
+import org.onap.portalapp.widget.service.WidgetCatalogService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Service;
+
+/**
+ * Uploads widget zip archives to Portal.
+ */
+@Service("initService")
+@Transactional
+@org.springframework.context.annotation.Configuration
+@EnableAspectJAutoProxy
+public class InitializationServiceImpl implements InitializationService {
+
+ private static final String BASIC_AUTH = "Basic Authentication";
+ private static final String PARAMETER_KEY = "resourceType";
+ private static final Logger logger = LoggerFactory.getLogger(InitializationServiceImpl.class);
+
+ @Autowired
+ WidgetCatalogService widgetCatalogService;
+
+ @Autowired
+ StorageService storageService;
+
+ @Autowired
+ MicroserviceService microserviceService;
+
+ @Value("${account.user.name}")
+ String account_user;
+
+ @Value("${account.user.password}")
+ String account_password;
+
+ @Value("${initialization.widgetData.url}")
+ String widgetData_url;
+
+ @Override
+ public void initialize() {
+ initCommonWidget("News");
+ initCommonWidget("Events");
+ initCommonWidget("Resources");
+ initCommonWidget("Portal-Common-Scheduler");
+ }
+
+ private void initCommonWidget(String name) {
+
+ final String newServiceName = name + " Microservice";
+
+ Long serviceId = microserviceService.getMicroserviceIdByName(newServiceName);
+
+ if (serviceId == null) {
+ MicroserviceData newService = new MicroserviceData();
+ newService.setName(newServiceName);
+ newService.setDesc(name);
+ newService.setAppId(1);
+ newService.setUrl(widgetData_url);
+ newService.setSecurityType(BASIC_AUTH);
+ newService.setUsername(account_user);
+ newService.setPassword(account_password);
+ newService.setActive("Y");
+ serviceId = microserviceService.saveMicroserivce(newService);
+
+ MicroserviceParameter parameter = new MicroserviceParameter();
+ parameter.setServiceId(serviceId);
+ parameter.setPara_key(PARAMETER_KEY);
+ String parameter_value = null;
+ switch (name.toLowerCase()) {
+ case "Portal-Common-Scheduler":
+ parameter_value = "NEWS";
+ break;
+ case "news":
+ parameter_value = "NEWS";
+ break;
+ case "events":
+ parameter_value = "EVENTS";
+ break;
+ case "resources":
+ parameter_value = "IMPORTANTRESOURCES";
+ break;
+ }
+ parameter.setPara_value(parameter_value);
+ microserviceService.saveMicroserviceParameter(parameter);
+ }
+
+ if (!widgetCatalogService.getWidgetIdByName(name)) {
+ WidgetCatalog newWidget = new WidgetCatalog();
+ newWidget.setName(name);
+ newWidget.setDesc(name);
+ newWidget.setAllowAllUser("1");
+ String fileLocation = name.toLowerCase() + "-widget.zip";
+ newWidget.setFileLocation(fileLocation);
+ newWidget.setServiceId(serviceId);
+ newWidget.setWidgetRoles(new HashSet<RoleApp>());
+ long widgetId = widgetCatalogService.saveWidgetCatalog(newWidget);
+
+ File tmpZipFile = new File("/tmp/" + fileLocation);
+ InputStream fileInputStream = null;
+ OutputStream outputStream = null;
+ try {
+ fileInputStream = this.getClass().getClassLoader().getResourceAsStream(fileLocation);
+ outputStream = new FileOutputStream(tmpZipFile);
+ int read = 0;
+ byte[] bytes = new byte[4096];
+ while ((read = fileInputStream.read(bytes)) != -1) {
+ outputStream.write(bytes, 0, read);
+ }
+ outputStream.close();
+ fileInputStream.close();
+ } catch (Exception e) {
+ logger.error(
+ "Exception occurred while performing InitializationServiceImpl.initCommonWidget in widget microservices. Details:", e);
+ }
+ storageService.initSave(tmpZipFile, newWidget, widgetId);
+ tmpZipFile.delete();
+ }
+ }
+}