summaryrefslogtreecommitdiffstats
path: root/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util
diff options
context:
space:
mode:
authorSunder Tattavarada <statta@research.att.com>2020-05-18 15:17:41 +0000
committerGerrit Code Review <gerrit@onap.org>2020-05-18 15:17:41 +0000
commit45505117ccea62c60cd57df471a757c77749671f (patch)
tree79feb9ec88278406c70c538c20278bdb45f7f708 /ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util
parent4c8ce62291707a0cb10d5b599d87e6c7dd6bfd9f (diff)
parent759e9e75fc0b5978f98f901744c87c0c8d5ef4fd (diff)
Merge "Raptor backend java API Code(Analytics), UI Code(Overlay) and pages component in os project"
Diffstat (limited to 'ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util')
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/AppConstants.java1
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/CachingUtils.java96
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java183
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/MailAttachment.java76
-rw-r--r--ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/RemDbInfo.java76
5 files changed, 383 insertions, 49 deletions
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/AppConstants.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/AppConstants.java
index cd3fdd39..dc90de77 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/AppConstants.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/AppConstants.java
@@ -625,6 +625,7 @@ public class AppConstants {
public static final String MYSQL = "mysql";
public static final String ORACLE = "oracle";
public static final String POSTGRESQL = "postgresql";
+ public static final String PAGE_DOWNLOAD = "page_download";
// COLORS to be used in Excel
public static String Aqua = "#00FFFF";
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/CachingUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/CachingUtils.java
new file mode 100644
index 00000000..66bfb697
--- /dev/null
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/CachingUtils.java
@@ -0,0 +1,96 @@
+
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+package org.onap.portalsdk.analytics.util;
+
+import org.apache.commons.collections4.map.LRUMap;
+
+public class CachingUtils {
+
+ private static LRUMap<String, String> pageSQLCahce;
+ private static LRUMap<String, String> reportSqlCache;
+ private static LRUMap<String, Integer> totalRowsCount;
+
+ public static String getPageSql(String sql) {
+ return pageSQLCahce.get(sql);
+
+ }
+
+ public static void putPageSql(String sql, String pageSql) {
+ if (pageSQLCahce == null) {
+ pageSQLCahce = new LRUMap<>();
+ }
+ pageSQLCahce.put(sql, pageSql);
+ }
+
+ public static void putReportSql(String sql, String reportSql) {
+ if (reportSqlCache == null) {
+ reportSqlCache = new LRUMap<>();
+ }
+ reportSqlCache.put(sql, reportSql);
+ }
+
+ public static String getReportSql(String sql) {
+ return reportSqlCache.get(sql);
+ }
+
+ public static boolean isReportSqlExists(String sql) {
+ if(reportSqlCache != null) {
+ return reportSqlCache.containsKey(sql);
+ }
+ return false;
+ }
+
+ public static int getTotalRowsCount(String sql) {
+ return totalRowsCount.get(sql);
+ }
+
+ public static void cacheTotalRowCount(String sql, int count) {
+ if (totalRowsCount == null) {
+ totalRowsCount = new LRUMap<>();
+ }
+ totalRowsCount.put(sql, count);
+ }
+
+ public static boolean isTotalCountAvailable(String sql) {
+ if (totalRowsCount != null) {
+ return totalRowsCount.containsKey(sql);
+ }
+ return false;
+ }
+}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java
new file mode 100644
index 00000000..61ac90c2
--- /dev/null
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/EmailUtils.java
@@ -0,0 +1,183 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+package org.onap.portalsdk.analytics.util;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.springframework.mail.javamail.JavaMailSenderImpl;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.mail.javamail.MimeMessagePreparator;
+import org.onap.portalsdk.analytics.error.RaptorException;
+import org.onap.portalsdk.analytics.system.AppUtils;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.core.io.FileSystemResource;
+
+
+public class EmailUtils {
+
+ public EmailUtils(){
+ super();
+ mailSender = new JavaMailSenderImpl();
+ mailSender.setProtocol("smtp");
+ mailSender.setHost(SystemProperties.getProperty(SystemProperties.MAIL_SERVER_HOST));
+ mailSender.setPort(Integer.parseInt(SystemProperties.getProperty(SystemProperties.MAIL_SERVER_PORT)));
+ }
+
+ private JavaMailSenderImpl mailSender;
+
+ public void sendEmailWithAttachment(String subj, String mesg, String[] toList, String[] ccList, String[] filePathAndName) throws RaptorException {
+ String from = AppUtils.getDefaultEmailSender();
+ List<MailAttachment> mailAttachList = new ArrayList<MailAttachment>();
+
+ for (int i = 0; i < filePathAndName.length; i++) {
+ MailAttachment mailAttachment = new MailAttachment();
+ mailAttachment.setAttachmentType(MailAttachment.FILE_ATTACHMENT);
+
+ String fileName = filePathAndName[i].substring(filePathAndName[i].lastIndexOf("/") + 1);
+ mailAttachment.setFileName(fileName);
+ mailAttachment.setFilePathName(filePathAndName[i]);
+
+ mailAttachList.add(mailAttachment);
+ }
+
+ notifyWithAttachments(mesg, toList, from, subj, ccList, null, mailAttachList, true);
+
+ }
+
+ public void sendEmailNoAttachment(String subj, String mesg, String[] toList, String[] ccList) throws RaptorException{
+ String from = AppUtils.getDefaultEmailSender();
+ notify(mesg, toList, from, subj, ccList, null, true);
+ }
+
+
+ public void notify(String message, String to, String from, boolean contentTypeHtml) {
+ notify(message, to, from, null, null, null, contentTypeHtml);
+ }
+
+ public void notify(String message, String to, String from, String subject, boolean contentTypeHtml) {
+ notify(message, to, from, subject, null, null, contentTypeHtml);
+ }
+
+ public void notify(String message, String to, String from, String subject, String cc, String bcc, boolean contentTypeHtml) {
+ String[] toList = new String[1];
+ String[] ccList = null;
+ String[] bccList = null;
+ if (cc != null) {
+ ccList = new String[1];
+ ccList[0] = cc;
+ }
+ if (bcc != null) {
+ bccList = new String[1];
+ bccList[0] = bcc;
+ }
+ toList[0] = to;
+ notify(message, toList, from, subject, ccList, bccList, contentTypeHtml);
+ }
+
+ public void notify(String message, String[] to, String from, String subject, String[] cc, String[] bcc, boolean contentTypeHtml) {
+ final MimeMessagePreparator messagePreparator = getMessagePreparator(message, to, from, subject, cc, bcc, null, contentTypeHtml);
+ Thread mailerThread = new Thread() {
+ public void run() {
+ getMailSender().send(messagePreparator);
+ }
+ };
+ mailerThread.start();
+ }
+
+ public void notifyWithAttachments(String message, String[] to, String from, String subject, String[] cc,
+ String[] bcc, List mailAttachments, boolean contentTypeHtml) {
+ final MimeMessagePreparator messagePreparator = getMessagePreparator(message, to, from, subject, cc, bcc,
+ mailAttachments, contentTypeHtml);
+ Thread mailerThread = new Thread() {
+ public void run() {
+ getMailSender().send(messagePreparator);
+ }
+ };
+ mailerThread.start();
+ }
+
+ private static MimeMessagePreparator getMessagePreparator(final String message, final String[] to, final String from,
+ final String subject, final String[] cc, final String[] bcc, final List mailAttachments, final boolean contentTypeHtml) {
+ final MimeMessagePreparator messagePreparator = new MimeMessagePreparator() {
+ public void prepare(MimeMessage mimeMessage) throws MessagingException {
+ MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true, "UTF-8");
+ helper.setFrom(from);
+ helper.setTo(to);
+ helper.setText(message, contentTypeHtml);
+ if (subject != null) {
+ helper.setSubject(subject);
+ }
+ if (cc != null) {
+ System.out.println(cc);
+ helper.setCc(cc);
+ }
+ if (bcc != null) {
+ helper.setBcc(bcc);
+ }
+ if (mailAttachments != null && mailAttachments.size() > 0) {
+ for (int i = 0; i < mailAttachments.size(); i++) {
+ MailAttachment mailAttachment = (MailAttachment) mailAttachments.get(i);
+ if (mailAttachment.getAttachmentType() == MailAttachment.FILE_ATTACHMENT) {
+ helper.addAttachment(mailAttachment.getFileName(), new FileSystemResource(new File(mailAttachment
+ .getFilePathName())));
+ } else if (mailAttachment.getAttachmentType() == MailAttachment.INLINE_ATTACHMENT) {
+ helper.addInline(mailAttachment.getFileName(), new FileSystemResource(new File(mailAttachment
+ .getFilePathName())));
+ }
+ }
+ }
+ }
+ };
+ return messagePreparator;
+ }
+
+ public JavaMailSenderImpl getMailSender() {
+ return mailSender;
+ }
+
+ public void setMailSender(JavaMailSenderImpl mailSender) {
+ this.mailSender = mailSender;
+ }
+
+
+}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/MailAttachment.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/MailAttachment.java
new file mode 100644
index 00000000..82fa6ade
--- /dev/null
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/MailAttachment.java
@@ -0,0 +1,76 @@
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal SDK
+ * ===================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ *
+ * Unless otherwise specified, all software contained herein is licensed
+ * under the Apache License, Version 2.0 (the "License");
+ * you may not use this software except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * Unless otherwise specified, all documentation contained herein is licensed
+ * under the Creative Commons License, Attribution 4.0 Intl. (the "License");
+ * you may not use this documentation except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * https://creativecommons.org/licenses/by/4.0/
+ *
+ * Unless required by applicable law or agreed to in writing, documentation
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * ============LICENSE_END============================================
+ *
+ *
+ */
+package org.onap.portalsdk.analytics.util;
+
+public class MailAttachment {
+ public static int INLINE_ATTACHMENT = 1;
+ public static int FILE_ATTACHMENT = 2;
+
+ private String fileName;
+ private String filePathName;
+ private int attachmentType = 1;
+
+ public MailAttachment() {
+ super();
+ // TODO Auto-generated constructor stub
+ }
+
+ public int getAttachmentType() {
+ return attachmentType;
+ }
+
+ public void setAttachmentType(int attachmentType) {
+ this.attachmentType = attachmentType;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public String getFilePathName() {
+ return filePathName;
+ }
+
+ public void setFilePathName(String filePath) {
+ this.filePathName = filePath;
+ }
+}
diff --git a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/RemDbInfo.java b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/RemDbInfo.java
index 57c1e31d..56e117f3 100644
--- a/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/RemDbInfo.java
+++ b/ecomp-sdk/epsdk-analytics/src/main/java/org/onap/portalsdk/analytics/util/RemDbInfo.java
@@ -39,53 +39,35 @@ package org.onap.portalsdk.analytics.util;
import java.sql.Connection;
import java.util.HashMap;
-
-import javax.servlet.ServletContext;
-
import org.onap.portalsdk.analytics.system.DbUtils;
import org.onap.portalsdk.analytics.system.Globals;
-import org.onap.portalsdk.analytics.system.fusion.adapter.RaptorAdapter;
-import org.onap.portalsdk.analytics.system.fusion.adapter.SpringContext;
-
+import org.springframework.stereotype.Component;
import com.mchange.v2.c3p0.ComboPooledDataSource;
+@Component
public class RemDbInfo {
- private HashMap remDbMap = null;
- private HashMap remDbTypeMap = null;
- private HashMap remDbConnectionMap = null;
-
- public RemDbInfo() throws Exception {
- if (remDbMap == null) {
- load();
- }
- }
+ private static HashMap remDbMap = null;
+ private static HashMap remDbTypeMap = null;
+ private static HashMap remDbConnectionMap = null;
- private RaptorAdapter raptorAdapter;
+ public static void load() {
+ if(remDbMap!=null)
+ return;
-
- public void initializeDbUtils(ServletContext servletContext) {
- raptorAdapter = (RaptorAdapter)SpringContext.getApplicationContext().getBean("raptorAdapter");
- } // initializeDbUtils
-
- public void load() throws Exception {
remDbMap = new HashMap();
remDbTypeMap = new HashMap();
remDbConnectionMap = new HashMap();
try {
- //String query = " SELECT a.SCHEMA_ID, a.SCHEMA_DESC, DATASOURCE_TYPE, rownum id FROM SCHEMA_INFO a " +
- // " where schema_id = 'local' union " +
- // " SELECT a.SCHEMA_ID, a.SCHEMA_DESC, DATASOURCE_TYPE, (rownum+1) id FROM SCHEMA_INFO a " +
- // " where schema_id <> 'local' order by id ";
String query = Globals.getRemoteDbSchemaSql();
DataSet ds = null;
Globals.getDbUtils();
ds = DbUtils.executeQuery(query);
- String prefix = "", desc = "", dbType = "", connectionUrl = "", username = "", password = "", driver_class = "";
+ String dbId = "", desc = "", dbType = "", connectionUrl = "", username = "", password = "", driver_class = "";
if(ds.getRowCount() > 0) {
for (int i = 0; i < ds.getRowCount(); i++) {
- prefix = ds.getItem(i, 0);
+ dbId = ds.getItem(i, 0);
desc = ds.getItem(i, 1);
dbType = ds.getItem(i, 2);
connectionUrl = ds.getItem(i, 3);
@@ -98,44 +80,40 @@ public class RemDbInfo {
cpds.setJdbcUrl( connectionUrl);
cpds.setUser(username);
cpds.setPassword(password);
-
-
-
-
- remDbMap.put(prefix, desc);
- remDbTypeMap.put(prefix, dbType);
- remDbConnectionMap.put(prefix, cpds);
- }
- } else {
- remDbMap.put("local", "local");
- remDbTypeMap.put("local", Globals.getDBType());
- remDbConnectionMap.put("local", raptorAdapter.getConnection());
+ cpds.setMinPoolSize(Integer.parseInt(ds.getItem(i, 7)));
+ cpds.setMaxPoolSize(Integer.parseInt(ds.getItem(i, 8)));
+ cpds.setIdleConnectionTestPeriod(Integer.parseInt(ds.getItem(i, 9)));
+
+ remDbMap.put(dbId, desc);
+ remDbTypeMap.put(dbId, dbType);
+ remDbConnectionMap.put(dbId, cpds);
+ }
}
}
catch (Exception e) {}
}
- public String getDesc(String prefix) {
- if ((remDbMap != null) && (remDbMap.containsKey(prefix))) {
- return (String) remDbMap.get(prefix);
+ public String getDesc(String dbId) {
+ if ((remDbMap != null) && (remDbMap.containsKey(dbId))) {
+ return (String) remDbMap.get(dbId);
}
return "";
}
- public String getDBType(String prefix) {
- if ((remDbTypeMap != null) && (remDbTypeMap.containsKey(prefix))) {
- return (String) remDbTypeMap.get(prefix);
+ public String getDBType(String dbId) {
+ if ((remDbTypeMap != null) && (remDbTypeMap.containsKey(dbId))) {
+ return (String) remDbTypeMap.get(dbId);
}
return "";
}
- public Connection getDBConnection(String prefix) {
- if ((remDbConnectionMap != null) && (remDbConnectionMap.containsKey(prefix))) {
+ public Connection getDBConnection(String dbId) {
+ if ((remDbConnectionMap != null) && (remDbConnectionMap.containsKey(dbId))) {
try {
- return ((ComboPooledDataSource) remDbConnectionMap.get(prefix)).getConnection();
+ return ((ComboPooledDataSource) remDbConnectionMap.get(dbId)).getConnection();
} catch (Exception ex) {
ex.printStackTrace();
return null;