diff --git a/.classpath b/.classpath index e50289f..5c3ac53 100755 --- a/.classpath +++ b/.classpath @@ -17,7 +17,11 @@ - + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index 839d647..29abf99 100755 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -2,4 +2,5 @@ eclipse.preferences.version=1 encoding//src/main/java=UTF-8 encoding//src/main/resources=UTF-8 encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 encoding/=UTF-8 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 0da405d..b6b38a3 100755 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,5 +1,5 @@ - + diff --git a/changelog.xml b/changelog.xml index b185ddf..51865af 100644 --- a/changelog.xml +++ b/changelog.xml @@ -1,4 +1,7 @@ + + Updated to new Social Networking API [ticket #19081] + Updated to Git and Jenkins Knime 4.1 added [ticket #18190] diff --git a/pom.xml b/pom.xml index 42766c8..d3cd7db 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ org.gcube.dataanalysis dataminer-pool-manager war - 2.6.0 + 2.7.0-SNAPSHOT dataminer-pool-manager DataMiner Pool Manager is a service to support the integration of algorithms in D4Science Infrastructure diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/configuration/DMPMClientConfiguratorManager.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/configuration/DMPMClientConfiguratorManager.java index 7dce935..25f8f3f 100755 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/configuration/DMPMClientConfiguratorManager.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/clients/configuration/DMPMClientConfiguratorManager.java @@ -1,7 +1,9 @@ package org.gcube.dataanalysis.dataminer.poolmanager.clients.configuration; import java.io.IOException; +import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import java.util.Properties; import org.gcube.common.scope.api.ScopeProvider; @@ -11,105 +13,90 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.tmatesoft.svn.core.SVNException; -public class DMPMClientConfiguratorManager -{ - private final Logger logger; +public class DMPMClientConfiguratorManager { + private final Logger logger; private Properties defaultAdmins; - private String admins; - + static DMPMClientConfiguratorManager instance; - - private ScopedCacheMap cacheMap; - - private DMPMClientConfiguratorManager () - { - this.admins = null; + + private ScopedCacheMap cacheMap; + + private DMPMClientConfiguratorManager() { this.cacheMap = new ScopedCacheMap(); this.logger = LoggerFactory.getLogger(DMPMClientConfiguratorManager.class); this.defaultAdmins = new Properties(); - - try - { + + try { this.defaultAdmins.load(this.getClass().getResourceAsStream("/default.admins")); this.logger.debug("Default users successfully loaded"); - } catch (Exception e) - { - this.logger.error("Unable to get default users",e); + } catch (Exception e) { + this.logger.error("Unable to get default users", e); } } - - private ClientConfigurationCache getCurrentCache () - { + + private ClientConfigurationCache getCurrentCache() { String currentScope = ScopeProvider.instance.get(); - this.logger.debug("Current scope = "+currentScope); + this.logger.debug("Current scope = " + currentScope); this.logger.debug("Getting current configuration cache"); ClientConfigurationCache cache = this.cacheMap.get(currentScope); - - if (cache == null) - { - this.logger.debug("Cache not created yet, creating..."); - cache = new ClientConfigurationCache (); - this.cacheMap.put(currentScope, cache); - - } - - return cache; - - - } - - public static DMPMClientConfiguratorManager getInstance () - { - if (instance == null) instance = new DMPMClientConfiguratorManager(); - + if (cache == null) { + this.logger.debug("Cache not created yet, creating..."); + cache = new ClientConfigurationCache(); + this.cacheMap.put(currentScope, cache); + + } + + return cache; + + } + + public static DMPMClientConfiguratorManager getInstance() { + if (instance == null) + instance = new DMPMClientConfiguratorManager(); + return instance; } - - public Configuration getProductionConfiguration () - { + + public Configuration getProductionConfiguration() { return new ConfigurationImpl(CONFIGURATIONS.PROD, getCurrentCache()); } - - public Configuration getStagingConfiguration () - { + + public Configuration getStagingConfiguration() { return new ConfigurationImpl(CONFIGURATIONS.STAGE, getCurrentCache()); } - - public String getDefaultAdmins () - { - if (this.admins == null && this.defaultAdmins.isEmpty()) this.admins= "ciro.formisano"; - else if (admins == null) - { - Iterator keys = this.defaultAdmins.keySet().iterator(); - StringBuilder response = new StringBuilder(); - - while (keys.hasNext()) - { - String key = (String) keys.next(); - response.append(this.defaultAdmins.getProperty(key)).append(", "); - } - - this.admins = response.substring(0, response.length()-2); + + public List getDefaultAdmins() { + List admins = new ArrayList(); + + if (defaultAdmins == null || defaultAdmins.isEmpty()) { + admins.add("statistical.manager"); + } else { + Iterator keys = this.defaultAdmins.keySet().iterator(); + + while (keys.hasNext()) { + String key = (String) keys.next(); + admins.add(defaultAdmins.getProperty(key)); + } + } - - this.logger.debug("Default admins list "+this.admins); - return this.admins; + + this.logger.debug("Default admins list: " + admins); + return admins; } - - + public static void main(String[] args) throws IOException, SVNException { DMPMClientConfiguratorManager a = new DMPMClientConfiguratorManager(); ScopeProvider.instance.set("/gcube/devNext/NextNext"); - //SecurityTokenProvider.instance.set("708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548"); - - System.out.println("RESULT 1"+a.getStagingConfiguration().getSVNCRANDepsList()); - System.out.println("RESULT 2"+a.getProductionConfiguration().getRepository()); - System.out.println("RESULT 3"+a.getStagingConfiguration().getSVNRepository().getPath()); - //System.out.println(a.getRepo()); - //System.out.println(a.getAlgoRepo()); - //System.out.println(a.getSVNRepo()); + // SecurityTokenProvider.instance.set("708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548"); + + System.out.println("RESULT 1" + a.getStagingConfiguration().getSVNCRANDepsList()); + System.out.println("RESULT 2" + a.getProductionConfiguration().getRepository()); + System.out.println("RESULT 3" + a.getStagingConfiguration().getSVNRepository().getPath()); + // System.out.println(a.getRepo()); + // System.out.println(a.getAlgoRepo()); + // System.out.println(a.getSVNRepo()); } } diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SendMail.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SendMail.java index db5c869..fc6b5c9 100644 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SendMail.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/SendMail.java @@ -8,12 +8,10 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; -import java.io.UnsupportedEncodingException; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; -import java.net.URLEncoder; -import java.util.LinkedList; +import java.util.ArrayList; import java.util.List; import org.apache.http.client.methods.HttpGet; @@ -24,140 +22,134 @@ import org.gcube.common.authorization.client.exceptions.ObjectNotFound; import org.gcube.common.authorization.library.AuthorizationEntry; import org.gcube.common.authorization.library.provider.SecurityTokenProvider; import org.gcube.common.resources.gcore.GCoreEndpoint; -import org.gcube.common.scope.api.ScopeProvider; import org.gcube.dataanalysis.dataminer.poolmanager.clients.configuration.DMPMClientConfiguratorManager; import org.gcube.dataanalysis.dataminer.poolmanager.util.exception.EMailException; import org.gcube.resources.discovery.client.api.DiscoveryClient; import org.gcube.resources.discovery.client.queries.api.SimpleQuery; import org.json.JSONArray; +import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +public class SendMail { -public class SendMail { + private Logger logger = LoggerFactory.getLogger(SendMail.class); + private final String WRITE_MESSAGE_ADDRESS_PATH = "2/messages/write-message?gcube-token=", + USER_ROLES_ADDRESS_PATH = "2/users/get-usernames-by-role?role-name=DataMiner-Manager&gcube-token=", + SOCIAL_SERVICE_QUERY_CONDITION = "$resource/Profile/ServiceName/text() eq 'SocialNetworking'", + SOCIAL_SERVICE_URI = "jersey-servlet", JSON_MIME_TYPE = "application/json"; + + private String socialServiceAddress; - private Logger logger; - private final String WRITE_MESSAGE_ADDRESS_PATH ="messages/writeMessageToUsers?gcube-token=", - USER_ROLES_ADDRESS_PATH ="2/users/get-usernames-by-role?role-name=DataMiner-Manager&gcube-token=", - ENCODING = "UTF-8", - SENDER_PARAMETER_FORMAT = "&sender=dataminer&recipients=%s&subject=%s&body=%s", - SOCIAL_SERVICE_QUERY_CONDITION ="$resource/Profile/ServiceName/text() eq 'SocialNetworking'", - SOCIAL_SERVICE_URI="jersey-servlet", - JSON_MIME_TYPE = "application/json"; - public SendMail() { - this.logger = LoggerFactory.getLogger(SendMail.class); + } - private String getRequestMessage (String addressPath) - { - String serviceAddress = this.getSocialService(); - StringBuilder requestMessageBuilder = new StringBuilder(serviceAddress); + public void sendNotification(String subject, String body) throws EMailException { + logger.debug("SendNotification"); + logger.debug("Notification Subject: " + subject); + logger.debug("Notification Body: " + body); + + retrieveSocialService(); + + String postBody = createPostBody(subject, body); + String requestForMessage = getRequestMessage(WRITE_MESSAGE_ADDRESS_PATH); - if (!serviceAddress.endsWith("/")) requestMessageBuilder.append('/'); - - requestMessageBuilder.append(addressPath).append(SecurityTokenProvider.instance.get()); - String requestForMessage = requestMessageBuilder.toString(); - this.logger.debug("Request "+requestForMessage); - return requestForMessage; + sendPostRequest(requestForMessage, postBody); + } - - public void sendNotification(String subject, String body) throws EMailException - { - this.logger.debug("Sending mail notification for "+subject); - this.logger.debug("Body "+body); - + private String createPostBody(String subject, String body) throws EMailException { + try { + List recipientsList = getRecipients(); + if (recipientsList == null || recipientsList.isEmpty()) { + logger.error("Invalid recipient list: " + recipientsList); + throw new EMailException("Unable to send email notification. Invalid recipient list:" + recipientsList); + } + // {"subject": "subject-content", "body": "body-content", + // "recipients":[{"id":"userid"}]} - //AnalysisLogger.getLogger().debug("Emailing System->Request url is going to be " + requestForMessage); + JSONObject data = new JSONObject(); + data.put("subject", subject); + data.put("body", body); + + JSONArray recipients = new JSONArray(); + for (String recipient : recipientsList) { + JSONObject d = new JSONObject(); + d.put("id", recipient); + recipients.put(d); + } + data.put("recipients", recipients); + + logger.info("Post Body: " + data); + return data.toString(); + + } catch (EMailException e) { + throw e; + } catch (Throwable e) { + logger.error("Error creating the notification body: " + e.getLocalizedMessage(), e); + throw new EMailException(e); - // put the sender, the recipients, subject and body of the mail here - - try - { - subject = URLEncoder.encode(subject, ENCODING); - body = URLEncoder.encode(body, ENCODING); } - catch (UnsupportedEncodingException e) - { + + } + + private void retrieveSocialService() throws EMailException { + try { + SimpleQuery query = queryFor(GCoreEndpoint.class); + query.addCondition(SOCIAL_SERVICE_QUERY_CONDITION); + DiscoveryClient client = clientFor(GCoreEndpoint.class); + List resources = client.submit(query); + socialServiceAddress = resources.get(0).profile().endpointMap().get(SOCIAL_SERVICE_URI).uri().toString(); + logger.info("Retrieved Social Service Address: " + socialServiceAddress); + if (socialServiceAddress == null || socialServiceAddress.isEmpty()) { + throw new EMailException( + "Unable to send email notification. Invalid address in GCoreEndpoint resource on IS."); + } + } catch (EMailException e) { + logger.error(e.getLocalizedMessage(), e); + throw e; + } catch (Throwable e) { + logger.error(e.getLocalizedMessage(), e); throw new EMailException(e); } - String requestForMessage = getRequestMessage(WRITE_MESSAGE_ADDRESS_PATH); - requestForMessage = requestForMessage.replace("http://", "https://").replace(":80", ""); - - String requestParameters = String.format(SENDER_PARAMETER_FORMAT, this.getAdmins(), subject , body); - - - String response = this.sendPostRequest(requestForMessage, requestParameters); - //AnalysisLogger.getLogger().debug("Emailing System->Emailing response OK "); - - if (response == null) throw new EMailException(); - } - // public void notifySubmitter(String a, String b) throws Exception { - // NotificationHelper nh = new NotificationHelper(); - // super.sendNotification(nh.getSubject(), - // nh.getBody()); - // } + private String getRequestMessage(String addressPath) { + StringBuilder requestMessageBuilder = new StringBuilder(socialServiceAddress); - public String username(String token) throws ObjectNotFound, Exception { + if (!socialServiceAddress.endsWith("/")) + requestMessageBuilder.append('/'); + + requestMessageBuilder.append(addressPath).append(SecurityTokenProvider.instance.get()); + String requestForMessage = requestMessageBuilder.toString(); + logger.debug("Request " + requestForMessage); + return requestForMessage; + } + + private String username(String token) throws ObjectNotFound, Exception { AuthorizationEntry entry = authorizationService().get(token); - this.logger.debug(entry.getClientInfo().getId()); + logger.debug(entry.getClientInfo().getId()); return entry.getClientInfo().getId(); } -// public String retrieveAdminRole() throws Exception { -// String serviceAddress = InfraRetrieval.findEmailingSystemAddress(ScopeProvider.instance.get()); -// -// if (!serviceAddress.endsWith("/")) -// serviceAddress = serviceAddress + "/"; -// -// String requestForMessage = serviceAddress + "2/users/get-usernames-by-global-role"; -// requestForMessage = requestForMessage.replace("https://", "http://").replace(":80", ""); -// String requestParameters = "&role-name=Administrator" + "&gcube-token=" + SecurityTokenProvider.instance.get(); -// -// String response = HttpRequest.sendGetRequest(requestForMessage, requestParameters); -// System.out.println(response.toString()); -// -// if (response == null) { -// Exception e = new Exception("Error in querying the recipient"); -// throw e; -// } -// return response; -// -// } - - public String getSocialService() { - SimpleQuery query = queryFor(GCoreEndpoint.class); - query.addCondition(SOCIAL_SERVICE_QUERY_CONDITION); - DiscoveryClient client = clientFor(GCoreEndpoint.class); - List resources = client.submit(query); - String a = resources.get(0).profile().endpointMap().get(SOCIAL_SERVICE_URI).uri().toString(); - return a; - } - - - - public String sendPostRequest(String endpoint, String requestParameters) { - - this.logger.debug("Sending post request"); - // Build parameter string - String data = requestParameters; + private void sendPostRequest(String endpoint, String postBody) throws EMailException { + logger.info("Execute Post:" + endpoint); + logger.info("Post Body:" + postBody); try { // Send the request URL url = new URL(endpoint); URLConnection conn = url.openConnection(); - + conn.setRequestProperty("Accept", JSON_MIME_TYPE); + conn.setRequestProperty("Content-Type", JSON_MIME_TYPE); conn.setDoOutput(true); - OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); - // write parameters - writer.write(data); + OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream()); + writer.write(postBody); writer.flush(); // Get the response @@ -170,125 +162,94 @@ public class SendMail { writer.close(); reader.close(); - this.logger.debug("Operation completed"); - String response = answer.toString(); - this.logger.debug("Response "+response); - // Output the response - return response; + logger.debug("Operation completed"); + String response = answer.toString(); + logger.info("Notification Response: " + response); + checkResponse(response); - } catch (MalformedURLException ex) { - this.logger.error("Invalid URL",ex); - } catch (IOException ex) { - - this.logger.error("Error in the IO process",ex); + } catch (EMailException e) { + throw e; + } catch (MalformedURLException e) { + logger.error("Invalid URL: " + e.getLocalizedMessage(), e); + throw new EMailException(e); + } catch (IOException e) { + logger.error("Error in the IO process: " + e.getLocalizedMessage(), e); + throw new EMailException(e); + } catch (Throwable e) { + logger.error("Error executing post:" + e.getLocalizedMessage(), e); + throw new EMailException(e); } - return null; + } - - - - - public String getAdminRoles() throws Exception{ - - // discover social gcore endpoint - - //GcoreEndpointReader ep = new GcoreEndpointReader(ScopeProvider.instance.get()); - - - String serviceAddress = getRequestMessage(USER_ROLES_ADDRESS_PATH); - //String serviceAddress = InfraRetrieval.findEmailingSystemAddress(ScopeProvider.instance.get()); - - - //String serviceAddress = ep.getResourceEntyName();//"https://socialnetworking1.d4science.org/social-networking-library-ws/rest/"; -// serviceAddress = serviceAddress.endsWith("/") ? serviceAddress : serviceAddress + "/"; -// serviceAddress+= "2/users/get-usernames-by-role?role-name=DataMiner-Manager&gcube-token=" + SecurityTokenProvider.instance.get(); - - this.logger.debug("Admin roles url is " + serviceAddress); - + + private void checkResponse(String response) throws EMailException { + if (response == null) { + logger.error("Invalid notification response: " + response); + throw new EMailException();// TODO + } else { + try { + JSONObject res = new JSONObject(response); + boolean success = res.getBoolean("success"); + if (!success) { + String message = res.getString("message"); + logger.error("Error in send email notification: " + message); + throw new EMailException("Error in send email notification: "+message); + } + + } catch (JSONException e) { + logger.error("Invalid notification response: " + response); + throw new EMailException(e); + } + + } + } + + private List getRecipients() { + try { + List recipients = new ArrayList(); + String dataMinerManagers = retrieveDataMinerManagers(); + logger.debug("Retrieved DataMiner Managers: " + dataMinerManagers); + if (dataMinerManagers != null && !dataMinerManagers.isEmpty()) { + JSONObject obj = new JSONObject(dataMinerManagers); + JSONArray data = obj.getJSONArray("result"); + if (data != null) { + for (int i = 0; i < data.length(); i++) { + recipients.add(data.getString(i)); + } + } + } else { + logger.info("Use the default admins how workaround "); + List defaultManagers = DMPMClientConfiguratorManager.getInstance().getDefaultAdmins(); + recipients.addAll(defaultManagers); + } + recipients.add(this.username(SecurityTokenProvider.instance.get())); + + logger.info("Retrieved Recipients: " + recipients); + return recipients; + } catch (Exception e) { + logger.error("Error retrieving recipients: " + e.getLocalizedMessage(), e); + logger.info("Use the default admins how workaround "); + return DMPMClientConfiguratorManager.getInstance().getDefaultAdmins(); + } + + } + + private String retrieveDataMinerManagers() throws Exception { + // Try to retrieve a url like this: + // https://api.d4science.org/social-networking-library-ws/rest/2/users/get-usernames-by-role?role-name=DataMiner-Manager&gcube-token=xxx-xxxx-xxxx-xxx + + String requestAdminsUrl = getRequestMessage(USER_ROLES_ADDRESS_PATH); + + logger.info("Request Admins Url: " + requestAdminsUrl); + CloseableHttpClient client = HttpClientBuilder.create().build(); - HttpGet getReq = new HttpGet(serviceAddress); + HttpGet getReq = new HttpGet(requestAdminsUrl); getReq.setHeader("accept", JSON_MIME_TYPE); getReq.setHeader("content-type", JSON_MIME_TYPE); - this.logger.info(EntityUtils.toString(client.execute(getReq).getEntity())); - + logger.info("Response: " + EntityUtils.toString(client.execute(getReq).getEntity())); + return EntityUtils.toString(client.execute(getReq).getEntity()); - + } - - - public String getAdmins(){ - try{ - List s = new LinkedList(); - JSONObject obj = new JSONObject(this.getAdminRoles()); - JSONArray data = obj.getJSONArray("result"); - if (data != null) { - String[] names = new String[data.length()]; - for (int i = 0; i < data.length(); i++) { - names[i] = data.getString(i); - s.add(names[i]); - } - s.add(this.username(SecurityTokenProvider.instance.get())); - } - return s.toString().replace("[", "").replace("]", ""); - } - catch(Exception a){return DMPMClientConfiguratorManager.getInstance().getDefaultAdmins(); } - - } - - - - -// public String getRootToken() throws Exception { -// -// //ApplicationContext ctx = ContextProvider.get(); // get this info from -// // SmartGears -// //System.out.println(ctx.container().configuration().infrastructure()); -// String a = ""; -// SimpleQuery query2 = queryFor(ServiceEndpoint.class); -// query2.addCondition("$resource/Profile/Name/text() eq 'SAIService'").setResult("$resource"); -// -// DiscoveryClient client2 = clientFor(ServiceEndpoint.class); -// List df = client2.submit(query2); -// -// for (ServiceEndpoint b : df) { -// a = StringEncrypter.getEncrypter().decrypt(b.profile().accessPoints().iterator().next().password()); -// } -// return a; -// } - - - - - - public static void main(String[] args) throws Exception { - - //ScopeProvider.instance.set("/d4science.research-infrastructures.eu/gCubeApps/RPrototypingLab"); - //SecurityTokenProvider.instance.set("3a23bfa4-4dfe-44fc-988f-194b91071dd2-843339462"); - - //ScopeProvider.instance.set("/gcube/devNext"); - //SecurityTokenProvider.instance.set("aa6eec71-fe07-43ab-bd1c-f03df293e430-98187548"); - - //NotificationHelper nh = new NotificationHelper(); - - SendMail sm = new SendMail(); - - //ScopeProvider.instance.set("/gcube/devNext/NextNext"); - //SecurityTokenProvider.instance.set("708e7eb8-11a7-4e9a-816b-c9ed7e7e99fe-98187548"); - //System.out.println(sm.getRootToken()); - //sm.getGenericResourceByName(""); - - ScopeProvider.instance.set("/gcube/preprod/preVRE"); - SecurityTokenProvider.instance.set("2eceaf27-0e22-4dbe-8075-e09eff199bf9-98187548"); - - - //sm.sendNotification(nh.getFailedSubject(), nh.getFailedBody("test failed")); - // sm.username(SecurityTokenProvider.instance.get()); - //sm.retrieveAdminRole(); - //sm.getAdminRoles(); - System.out.println(sm.getAdmins()); - //System.out.println(sm.getAdmins()); - //sm.sendNotification("test", "test"); - //System.out.println(sm.getSocialService()); - } } diff --git a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/exception/EMailException.java b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/exception/EMailException.java index 99bce2f..b0d02d9 100755 --- a/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/exception/EMailException.java +++ b/src/main/java/org/gcube/dataanalysis/dataminer/poolmanager/util/exception/EMailException.java @@ -2,23 +2,27 @@ package org.gcube.dataanalysis.dataminer.poolmanager.util.exception; public class EMailException extends Exception { - private static final String MESSAGE = "Unable to send email notification"; - + /** * */ private static final long serialVersionUID = 1L; public EMailException() { - super (MESSAGE); - } - - public EMailException(Throwable cause) { - super (MESSAGE,cause); + super(MESSAGE); } + public EMailException(String message) { + super(message); + } + + public EMailException(String message, Throwable e) { + super(message, e); + } + + public EMailException(Throwable e) { + super(MESSAGE, e); + } - - } diff --git a/src/main/webapp/WEB-INF/.gitignore b/src/main/webapp/WEB-INF/.gitignore new file mode 100644 index 0000000..e5d1453 --- /dev/null +++ b/src/main/webapp/WEB-INF/.gitignore @@ -0,0 +1,5 @@ +/LICENSE.md +/README.md +/changelog.xml +/gcube-app.xml +/profile.xml diff --git a/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SendMailTest.java b/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SendMailTest.java new file mode 100644 index 0000000..ebf23e4 --- /dev/null +++ b/src/test/java/org/gcube/dataanalysis/dataminerpoolmanager/SendMailTest.java @@ -0,0 +1,38 @@ +package org.gcube.dataanalysis.dataminerpoolmanager; + +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.dataanalysis.dataminer.poolmanager.util.SendMail; + +public class SendMailTest { + + public static void main(String[] args) { + try { + + // NotificationHelper nh = new NotificationHelper(); + + SendMail sm = new SendMail(); + + ScopeProvider.instance.set("/gcube/devNext/NextNext"); + SecurityTokenProvider.instance.set("xxxx-xxxx-xxx"); + // System.out.println(sm.getRootToken()); + // sm.getGenericResourceByName(""); + + //ScopeProvider.instance.set("/gcube/devsec/devVRE"); + //SecurityTokenProvider.instance.set("xxxx-xxxx-xxxx"); + + // sm.sendNotification(nh.getFailedSubject(), nh.getFailedBody("test + // failed")); + // sm.username(SecurityTokenProvider.instance.get()); + // sm.retrieveAdminRole(); + // sm.getAdminRoles(); + sm.sendNotification("Test DMPoolManager Notification", "This is only a test please cancel this message."); + // System.out.println(sm.getAdmins()); + // sm.sendNotification("test", "test"); + // System.out.println(sm.getSocialService()); + } catch (Exception e) { + System.out.println("Error in sent mail: "+e.getLocalizedMessage()); + e.printStackTrace(); + } + } +}