diff --git a/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/client/view/ManageProductWidget.java b/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/client/view/ManageProductWidget.java
index fafac26..feb368e 100644
--- a/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/client/view/ManageProductWidget.java
+++ b/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/client/view/ManageProductWidget.java
@@ -673,7 +673,7 @@ public class ManageProductWidget extends Composite{
for(SimilarGRSFRecord sR: bean.getSimilarGrsfRecords()){
if(sR.isSuggestedMerge()){
bean.setMergesInvolved(true);
- report += "\n\t - merge the current record with record '" + sR.getTitle() + " ;";
+ report += "\n\t - merge the current record with record '" + sR.getTitle() + "' ;";
report += "\n\t \t- GRSF Name '" + sR.getTitle() + "' ;";
report += "\n\t \t- Short Name '" + sR.getShortName() + "' ;";
report += "\n\t \t- URL '" + sR.getUrl() + "' ;";
diff --git a/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/server/manage/SocialCommunications.java b/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/server/manage/SocialCommunications.java
index 88b0d71..928119f 100644
--- a/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/server/manage/SocialCommunications.java
+++ b/src/main/java/org/gcube/datacatalogue/grsf_manage_widget/server/manage/SocialCommunications.java
@@ -41,9 +41,10 @@ import org.json.simple.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
/**
- * For managing the different interactions with social channels (posts and mails)
+ * For managing the different interactions with social channels (posts and
+ * mails)
+ *
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
*/
public class SocialCommunications {
@@ -64,9 +65,10 @@ public class SocialCommunications {
private static final String MEDIATYPE_JSON = "application/json";
// for writing a post in the GRSF admin context
- private static final String APPLICATION_ID_CATALOGUE_MANAGER = "org.gcube.datacatalogue.GRSFNotifier";
+ private static final String APPLICATION_ID_CATALOGUE_MANAGER = "org.gcube.datacatalogue.GRSFNotifier";
- // emails to be sent to editors and reviewers and post to be written into the grsf admin vre
+ // emails to be sent to editors and reviewers and post to be written into the
+ // grsf admin vre
private static final String POST_MESSAGE = "Dear members,"
+ "\nThe record 'PRODUCT_TITLE' has been just updated by USER_FULLNAME."
+ "\nYou can inspect it here: LINK_RECORD.";
@@ -81,7 +83,7 @@ public class SocialCommunications {
private static final String ADD_REPORT = "
This is a summary of the actions proposed:
REPORT_UPDATE
";
- // revert link
+ // revert link
private static final String REVERT_LINK_PIECE = "
The request involves a merge operation. You can reject the merge by exploiting this link LINK in the following 24 hours.";
// on revert operation
@@ -89,7 +91,7 @@ public class SocialCommunications {
+ "
a revert operation (undo merge) has been requested on record RECORD_URL, by ADMIN_WHO_CHANGED.";
private static final String EMAIL_EDITOR_REVERT = "Dear ORIGINAL_USER,"
- +"
a revert operation (undo merge) has been requested on this RECORD_URL you managed by ADMIN_WHO_CHANGED.";
+ + "
a revert operation (undo merge) has been requested on this RECORD_URL you managed by ADMIN_WHO_CHANGED.";
// post on revert
private static final String POST_ON_REVERT = "Dear members,"
@@ -99,39 +101,42 @@ public class SocialCommunications {
/**
*
- * @param httpServletRequest
+ * @param httpServletRequest
* @param context
* @return
*/
- public static String getBaseUrlSocialService(HttpServletRequest httpServletRequest){
+ public static String getBaseUrlSocialService(HttpServletRequest httpServletRequest) {
String context = ScopeProvider.instance.get();
- String keyPerContext = SOCIAL_NETWORKING_BASE_URL_SESSION_KEY + context;
+ String keyPerContext = SOCIAL_NETWORKING_BASE_URL_SESSION_KEY + context;
String basePath = (String) httpServletRequest.getSession().getAttribute(keyPerContext);
- if(basePath == null){
- try{
+ if (basePath == null) {
+ try {
SimpleQuery query = queryFor(GCoreEndpoint.class);
- query.addCondition(String.format("$resource/Profile/ServiceClass/text() eq '%s'",serviceClass));
+ query.addCondition(String.format("$resource/Profile/ServiceClass/text() eq '%s'", serviceClass));
query.addCondition("$resource/Profile/DeploymentData/Status/text() eq 'ready'");
- query.addCondition(String.format("$resource/Profile/ServiceName/text() eq '%s'",serviceName));
- query.setResult("$resource/Profile/AccessPoint/RunningInstanceInterfaces//Endpoint[@EntryName/string() eq \""+resource+"\"]/text()");
+ query.addCondition(String.format("$resource/Profile/ServiceName/text() eq '%s'", serviceName));
+ query.setResult(
+ "$resource/Profile/AccessPoint/RunningInstanceInterfaces//Endpoint[@EntryName/string() eq \""
+ + resource + "\"]/text()");
DiscoveryClient client = client();
List endpoints = client.submit(query);
- if (endpoints == null || endpoints.isEmpty())
- throw new Exception("Cannot retrieve the GCoreEndpoint serviceName: "+serviceName +", serviceClass: " +serviceClass +", in scope: "+context);
-
+ if (endpoints == null || endpoints.isEmpty())
+ throw new Exception("Cannot retrieve the GCoreEndpoint serviceName: " + serviceName
+ + ", serviceClass: " + serviceClass + ", in scope: " + context);
basePath = endpoints.get(0);
- if(basePath==null)
- throw new Exception("Endpoint:"+resource+", is null for serviceName: "+serviceName +", serviceClass: " +serviceClass +", in scope: "+context);
+ if (basePath == null)
+ throw new Exception("Endpoint:" + resource + ", is null for serviceName: " + serviceName
+ + ", serviceClass: " + serviceClass + ", in scope: " + context);
httpServletRequest.getSession().setAttribute(keyPerContext, basePath);
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Unable to retrieve such service endpoint information!", e);
}
}
@@ -141,31 +146,35 @@ public class SocialCommunications {
/**
* Require a proper application token for writing a post and send messages.
+ *
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
- private static String requireApplicationToken(String serviceUrl) throws Exception{
+ private static String requireApplicationToken(String serviceUrl) throws Exception {
String currentScope = ScopeProvider.instance.get();
String tokenUser = SecurityTokenProvider.instance.get();
- logger.info("Current scope for requireApplicationToken is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
+ logger.info("Current scope for requireApplicationToken is " + currentScope + " and token is "
+ + tokenUser.substring(0, 10) + "***************");
String basePath = serviceUrl;
- if(basePath == null){
+ if (basePath == null) {
logger.error("Unable to write a post because there is no social networking service available");
throw new Exception("Unable to discover the social networking service");
- }else{
+ } else {
basePath = basePath.endsWith("/") ? basePath : basePath + "/";
- try(CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build();){
+ try (CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy())
+ .build();) {
// ask token application
- HttpPost postRequest = new HttpPost(basePath + SOCIAL_SERVICE_APPLICATION_TOKEN + "?gcube-token=" + tokenUser);
+ HttpPost postRequest = new HttpPost(
+ basePath + SOCIAL_SERVICE_APPLICATION_TOKEN + "?gcube-token=" + tokenUser);
JSONObject requestToken = new JSONObject();
requestToken.put("app_id", APPLICATION_ID_CATALOGUE_MANAGER);
StringEntity input = new StringEntity(requestToken.toJSONString());
@@ -178,21 +187,21 @@ public class SocialCommunications {
if (response.getStatusLine().getStatusCode() != 201) {
throw new RuntimeException("Failed to retrieve application token : HTTP error code : "
+ response.getStatusLine().getStatusCode());
- }else{
+ } else {
Map mapResponseGeneratedToken = getResponseEntityAsJSON(response);
- boolean successGeneratedToken = (boolean)mapResponseGeneratedToken.get("success");
- if(!successGeneratedToken){
+ boolean successGeneratedToken = (boolean) mapResponseGeneratedToken.get("success");
+ if (!successGeneratedToken) {
throw new RuntimeException("Failed to generate the token for the application!"
+ " Error message is " + mapResponseGeneratedToken.get("message"));
- }else{
- return (String)mapResponseGeneratedToken.get("result");
+ } else {
+ return (String) mapResponseGeneratedToken.get("result");
}
}
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Failed to create a post", e);
throw e;
}
@@ -201,63 +210,76 @@ public class SocialCommunications {
/**
* Notify the users about the required changes.
+ *
* @param bean
* @param url
* @param username
* @param fullName
* @param hashtags
* @param enablePostNotification
- * @throws Exception
+ * @throws Exception
*/
@SuppressWarnings("unchecked")
- public static void writePostOnRevert(String serviceUrl, RevertableOperationInfo rInfo, boolean enablePostNotification, String userCurrentUrl) throws Exception{
+ public static void writePostOnRevert(String serviceUrl, RevertableOperationInfo rInfo,
+ boolean enablePostNotification, String userCurrentUrl) throws Exception {
// discover service endpoint for the social networking library
String currentScope = ScopeProvider.instance.get();
String tokenUser = SecurityTokenProvider.instance.get();
- logger.info("Current scope for writePostOnRevert is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
+ logger.info("Current scope for writePostOnRevert is " + currentScope + " and token is "
+ + tokenUser.substring(0, 10) + "***************");
String basePath = serviceUrl;
- if(basePath == null){
+ if (basePath == null) {
logger.error("Unable to write a post because there is no social networking service available");
throw new Exception("Unable to discover the social networking service");
- }else{
+ } else {
basePath = basePath.endsWith("/") ? basePath : basePath + "/";
- try(CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build();){
+ try (CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy())
+ .build();) {
// require url
String applicationToken = requireApplicationToken(serviceUrl);
- //see Feature #17576 updated by Francesco
- /*final String profilePageURL = GCubePortalConstants.PREFIX_GROUP_URL + extractOrgFriendlyURL(userCurrentUrl) + GCubePortalConstants.USER_PROFILE_FRIENDLY_URL;
- String userFullNameHighlightedCurrent = ""+rInfo.getFullNameCurrentAdmin()+
- " ";
- */
-
- String userFullNameHighlightedCurrent = "@"+rInfo.getUserNameCurrentAdmin();
+ // see Feature #17576 updated by Francesco
+ /*
+ * final String profilePageURL = GCubePortalConstants.PREFIX_GROUP_URL +
+ * extractOrgFriendlyURL(userCurrentUrl) +
+ * GCubePortalConstants.USER_PROFILE_FRIENDLY_URL; String
+ * userFullNameHighlightedCurrent = ""+rInfo.getFullNameCurrentAdmin()+ " ";
+ */
- /*String userFullNameHighlightedOriginal = ""+rInfo.getFullNameOriginalAdmin()+
- " ";*/
-
- String userFullNameHighlightedOriginal = "@"+rInfo.getUserNameOriginalAdmin();
+ String userFullNameHighlightedCurrent = "@" + rInfo.getUserNameCurrentAdmin();
+
+ /*
+ * String userFullNameHighlightedOriginal = ""+rInfo.getFullNameOriginalAdmin()+ " ";
+ */
+
+ String userFullNameHighlightedOriginal = "@" + rInfo.getUserNameOriginalAdmin();
// replace
- String message = POST_ON_REVERT.replace("RECORD_URL", rInfo.getRecordUrl()).replace("ADMIN_WHO_CHANGED", userFullNameHighlightedCurrent).replace("ORIGINAL_USER",userFullNameHighlightedOriginal);
+ String message = POST_ON_REVERT.replace("RECORD_URL", rInfo.getRecordUrl())
+ .replace("ADMIN_WHO_CHANGED", userFullNameHighlightedCurrent)
+ .replace("ORIGINAL_USER", userFullNameHighlightedOriginal);
// add hashtag
- message +="\n\n";
+ message += "\n\n";
message += " #" + HashTagsOnUpdate.REVERTED_MERGE.getString();
logger.info("The post that is going to be written is -> " + message);
- HttpPost postRequest = new HttpPost(basePath + SOCIAL_SERVICE_WRITE_APPLICATION_POST + "?gcube-token=" + applicationToken);
+ HttpPost postRequest = new HttpPost(
+ basePath + SOCIAL_SERVICE_WRITE_APPLICATION_POST + "?gcube-token=" + applicationToken);
JSONObject object = new JSONObject();
object.put("text", message);
object.put("enable_notification", enablePostNotification);
@@ -272,7 +294,7 @@ public class SocialCommunications {
throw new RuntimeException("Failed to write application post : HTTP error code : "
+ response.getStatusLine().getStatusCode() + mapResponseWritePost.get("message"));
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Failed to create a post", e);
}
}
@@ -280,69 +302,77 @@ public class SocialCommunications {
/**
* Notify the users about the required changes.
+ *
* @param bean
* @param url
* @param username
* @param fullName
* @param hashtags
* @param enablePostNotification
- * @throws Exception
+ * @throws Exception
*/
@SuppressWarnings("unchecked")
- public static void writeProductPost(String serviceUrl, ManageProductBean bean, String username, String fullName, boolean enablePostNotification, String userCurrentUrl) throws Exception{
+ public static void writeProductPost(String serviceUrl, ManageProductBean bean, String username, String fullName,
+ boolean enablePostNotification, String userCurrentUrl) throws Exception {
// discover service endpoint for the social networking library
String currentScope = ScopeProvider.instance.get();
String tokenUser = SecurityTokenProvider.instance.get();
- logger.info("Current scope for writeProductPost is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
+ logger.info("Current scope for writeProductPost is " + currentScope + " and token is "
+ + tokenUser.substring(0, 10) + "***************");
String basePath = serviceUrl;
- if(basePath == null){
+ if (basePath == null) {
logger.error("Unable to write a post because there is no social networking service available");
throw new Exception("Unable to discover the social networking service");
- }else{
+ } else {
basePath = basePath.endsWith("/") ? basePath : basePath + "/";
- try(CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build();){
+ try (CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy())
+ .build();) {
// require url
String applicationToken = requireApplicationToken(serviceUrl);
-
- //see Feature #17576 Updated by Francesco
- /*final String profilePageURL = GCubePortalConstants.PREFIX_GROUP_URL + extractOrgFriendlyURL(userCurrentUrl) + GCubePortalConstants.USER_PROFILE_FRIENDLY_URL;
- String userFullNameHighlighted = ""+fullName+
- " ";
- */
-
- String userFullNameHighlighted = "@"+username;
+
+ // see Feature #17576 Updated by Francesco
+ /*
+ * final String profilePageURL = GCubePortalConstants.PREFIX_GROUP_URL +
+ * extractOrgFriendlyURL(userCurrentUrl) +
+ * GCubePortalConstants.USER_PROFILE_FRIENDLY_URL; String
+ * userFullNameHighlighted = ""+fullName+
+ * " ";
+ */
+
+ String userFullNameHighlighted = "@" + username;
// replace
- String message = POST_MESSAGE.replace("PRODUCT_TITLE", bean.getTitle()).replace("LINK_RECORD", bean.getUrl()).
- replace("USER_FULLNAME", userFullNameHighlighted);
+ String message = POST_MESSAGE.replace("PRODUCT_TITLE", bean.getTitle())
+ .replace("LINK_RECORD", bean.getUrl()).replace("USER_FULLNAME", userFullNameHighlighted);
- if(bean.getReport() != null && !bean.getReport().isEmpty())
- message += ADD_REPORT.replace("REPORT_UPDATE", bean.getReport());
+ if (bean.getReport() != null && !bean.getReport().isEmpty())
+ message += ADD_REPORT.replace("
", "").replace("REPORT_UPDATE", bean.getReport());
Set hashtags = bean.getHashtags();
logger.debug("Hashtags are " + hashtags);
- if(hashtags != null && !hashtags.isEmpty()){
- message +="\n\n";
+ if (hashtags != null && !hashtags.isEmpty()) {
+ message += "\n\n";
for (String hashtag : hashtags) {
message += " #" + hashtag;
}
- //Added by Francesco Mangiacrapa see at Feature #16312
+ // Added by Francesco Mangiacrapa see at Feature #16312
String normalizedFullName = fullName.trim().replace(" ", "_");
message += " #" + normalizedFullName;
}
logger.info("The post that is going to be written is -> " + message);
- HttpPost postRequest = new HttpPost(basePath + SOCIAL_SERVICE_WRITE_APPLICATION_POST + "?gcube-token=" + applicationToken);
+ HttpPost postRequest = new HttpPost(
+ basePath + SOCIAL_SERVICE_WRITE_APPLICATION_POST + "?gcube-token=" + applicationToken);
JSONObject object = new JSONObject();
object.put("text", message);
object.put("enable_notification", enablePostNotification);
@@ -356,7 +386,7 @@ public class SocialCommunications {
if (response.getStatusLine().getStatusCode() != 201)
throw new RuntimeException("Failed to write application post : HTTP error code : "
+ response.getStatusLine().getStatusCode() + mapResponseWritePost.get("message"));
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Failed to create a post", e);
}
}
@@ -372,31 +402,26 @@ public class SocialCommunications {
} else {
friendlyURL = friendlyURL.split("\\?")[0].split("\\#")[0];
}
- return "/"+friendlyURL;
+ return "/" + friendlyURL;
}
return null;
}
/**
- * Send an email to the administrator as well as the
+ * Send an email to the administrator as well as the
+ *
* @param bean
* @param catalogue
* @param username
* @param fullName
- * @param isMergeInvolved
- * @param httpSession
- * @throws Exceptio
+ * @param isMergeInvolved
+ * @param httpSession
+ * @throws Exceptio
*/
@SuppressWarnings("unchecked")
- public static void sendEmailAdministrators(
- String serviceUrl,
- ManageProductBean bean,
- DataCatalogue catalogue,
- String username,
- String fullName,
- long groupId,
- String clientCurrenturl,
- boolean isMergeInvolved) throws Exception {
+ public static void sendEmailAdministrators(String serviceUrl, ManageProductBean bean, DataCatalogue catalogue,
+ String username, String fullName, long groupId, String clientCurrenturl, boolean isMergeInvolved)
+ throws Exception {
// get the list of GRSF Reviewers to alert them as well
RoleManager roleManager = new LiferayRoleManager();
@@ -406,54 +431,56 @@ public class SocialCommunications {
List reviewers = new ArrayList(reviewersGcube.size());
- for(GCubeUser gU: reviewersGcube){
+ for (GCubeUser gU : reviewersGcube) {
// if the user is a reviewer, then send the email just once
- if(!gU.getUsername().equals(username))
+ if (!gU.getUsername().equals(username))
reviewers.add(gU.getUsername());
}
logger.info("List of " + Constants.GRSF_CATALOGUE_REVIEWER_ROLE + " is " + reviewers);
- // build the url that allows to revert the operation
+ // build the url that allows to revert the operation
RevertableOperations operation = RevertableOperations.MERGE;
// discover service endpoint for the social networking library
String currentScope = ScopeProvider.instance.get();
String tokenUser = SecurityTokenProvider.instance.get();
- logger.info("Current scope for writeProductPost is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
+ logger.info("Current scope for writeProductPost is " + currentScope + " and token is "
+ + tokenUser.substring(0, 10) + "***************");
String basePath = serviceUrl;
- if(basePath == null){
+ if (basePath == null) {
logger.error("Unable to write a post because there is no social networking service available");
throw new Exception("Unable to discover the social networking service");
- }else{
+ } else {
basePath = basePath.endsWith("/") ? basePath : basePath + "/";
- try(CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build();){
+ try (CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy())
+ .build();) {
/// require url
String applicationToken = requireApplicationToken(serviceUrl);
String revertUrl = "";
- if(isMergeInvolved)
- revertUrl = getEncodedUrlManage(operation, username, System.currentTimeMillis(), bean.getKnowledgeBaseId(), clientCurrenturl);
-
- String messageToEditor = (EMAIL_MESSAGE_EDITOR +
- (isMergeInvolved? REVERT_LINK_PIECE : "")).replace("USER_FULLNAME", fullName).replace("PRODUCT_TITLE", bean.getTitle()).
- replace("LINK_RECORD", bean.getUrl()).replace("LINK", revertUrl);
- String messageToReviewer = (EMAIL_MESSAGE_REVIEWER+
- (isMergeInvolved? REVERT_LINK_PIECE : "")).replace("USER_FULLNAME", fullName).replace("PRODUCT_TITLE", bean.getTitle()).
- replace("LINK_RECORD", bean.getUrl()).replace("LINK", revertUrl);
+ if (isMergeInvolved)
+ revertUrl = getEncodedUrlManage(operation, username, System.currentTimeMillis(),
+ bean.getKnowledgeBaseId(), clientCurrenturl);
+ String messageToEditor = (EMAIL_MESSAGE_EDITOR + (isMergeInvolved ? REVERT_LINK_PIECE : ""))
+ .replace("USER_FULLNAME", fullName).replace("PRODUCT_TITLE", bean.getTitle())
+ .replace("LINK_RECORD", bean.getUrl()).replace("LINK", revertUrl);
+ String messageToReviewer = (EMAIL_MESSAGE_REVIEWER + (isMergeInvolved ? REVERT_LINK_PIECE : ""))
+ .replace("USER_FULLNAME", fullName).replace("PRODUCT_TITLE", bean.getTitle())
+ .replace("LINK_RECORD", bean.getUrl()).replace("LINK", revertUrl);
String subject = "Update request on GRSF Record";
// append report
- if(bean.getReport() != null){
+ if (bean.getReport() != null) {
messageToEditor += ADD_REPORT.replace("REPORT_UPDATE", bean.getReport());
messageToReviewer += ADD_REPORT.replace("REPORT_UPDATE", bean.getReport());
}
@@ -482,7 +509,7 @@ public class SocialCommunications {
Map mapResponseWritePost = getResponseEntityAsJSON(response);
- if (response.getStatusLine().getStatusCode() != 201){
+ if (response.getStatusLine().getStatusCode() != 201) {
logger.error("Failed to send message to editor : HTTP error code : "
+ response.getStatusLine().getStatusCode() + mapResponseWritePost.get("message"));
}
@@ -494,7 +521,7 @@ public class SocialCommunications {
reqMessage.put("subject", subject);
reqMessage.put("body", messageToReviewer);
recipients = new JSONArray();
- for(String reviewer: reviewers){
+ for (String reviewer : reviewers) {
JSONObject recip = new JSONObject();
recip.put("id", reviewer);
recipients.add(recip);
@@ -509,12 +536,12 @@ public class SocialCommunications {
response = client.execute(postRequest);
mapResponseWritePost = getResponseEntityAsJSON(response);
- if (response.getStatusLine().getStatusCode() != 201){
+ if (response.getStatusLine().getStatusCode() != 201) {
logger.error("Failed to send message to reviewers : HTTP error code : "
+ response.getStatusLine().getStatusCode() + mapResponseWritePost.get("message"));
}
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Failed to send messages", e);
}
}
@@ -522,11 +549,8 @@ public class SocialCommunications {
}
@SuppressWarnings("unchecked")
- public static void sendEmailAdministratorsOnOperationReverted(
- String serviceUrl,
- RevertableOperationInfo rInfo,
- long groupId
- ) throws Exception {
+ public static void sendEmailAdministratorsOnOperationReverted(String serviceUrl, RevertableOperationInfo rInfo,
+ long groupId) throws Exception {
// get the list of GRSF Reviewers to alert them as well
RoleManager roleManager = new LiferayRoleManager();
@@ -536,9 +560,9 @@ public class SocialCommunications {
List reviewers = new ArrayList(reviewersGcube.size());
- for(GCubeUser gU: reviewersGcube){
+ for (GCubeUser gU : reviewersGcube) {
// if the user is a reviewer, then send the email just once
- if(!gU.getUsername().equals(rInfo.getUserNameOriginalAdmin()))
+ if (!gU.getUsername().equals(rInfo.getUserNameOriginalAdmin()))
reviewers.add(gU.getUsername());
}
@@ -548,26 +572,31 @@ public class SocialCommunications {
String currentScope = ScopeProvider.instance.get();
String tokenUser = SecurityTokenProvider.instance.get();
- logger.info("Current scope for writeProductPost is " + currentScope + " and token is " + tokenUser.substring(0, 10) + "***************");
+ logger.info("Current scope for writeProductPost is " + currentScope + " and token is "
+ + tokenUser.substring(0, 10) + "***************");
String basePath = serviceUrl;
- if(basePath == null){
+ if (basePath == null) {
logger.error("Unable to write a post because there is no social networking service available");
throw new Exception("Unable to discover the social networking service");
- }else{
+ } else {
basePath = basePath.endsWith("/") ? basePath : basePath + "/";
- try(CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy()).build();){
+ try (CloseableHttpClient client = HttpClientBuilder.create().setRedirectStrategy(new LaxRedirectStrategy())
+ .build();) {
String applicationToken = requireApplicationToken(serviceUrl);
- String messageToEditor = EMAIL_EDITOR_REVERT.replace("RECORD_URL", rInfo.getRecordUrl()).replace("ORIGINAL_USER", rInfo.getFullNameOriginalAdmin()).
- replace("ADMIN_WHO_CHANGED", rInfo.getFullNameCurrentAdmin());
- String messageToReviewer = EMAIL_REVIEWER_REVERT.replace("ADMIN_WHO_CHANGED", rInfo.getFullNameCurrentAdmin()).replace("RECORD_URL", rInfo.getRecordUrl()).
- replace("ORIGINAL_USER", rInfo.getFullNameOriginalAdmin());
+ String messageToEditor = EMAIL_EDITOR_REVERT.replace("RECORD_URL", rInfo.getRecordUrl())
+ .replace("ORIGINAL_USER", rInfo.getFullNameOriginalAdmin())
+ .replace("ADMIN_WHO_CHANGED", rInfo.getFullNameCurrentAdmin());
+ String messageToReviewer = EMAIL_REVIEWER_REVERT
+ .replace("ADMIN_WHO_CHANGED", rInfo.getFullNameCurrentAdmin())
+ .replace("RECORD_URL", rInfo.getRecordUrl())
+ .replace("ORIGINAL_USER", rInfo.getFullNameOriginalAdmin());
String subject = "Revert merge request on GRSF Record";
messageToEditor = messageToEditor.replace("
", "\n");
@@ -591,7 +620,7 @@ public class SocialCommunications {
Map mapResponseWritePost = getResponseEntityAsJSON(response);
- if (response.getStatusLine().getStatusCode() != 201){
+ if (response.getStatusLine().getStatusCode() != 201) {
logger.error("Failed to send message to editor : HTTP error code : "
+ response.getStatusLine().getStatusCode() + mapResponseWritePost.get("message"));
}
@@ -603,7 +632,7 @@ public class SocialCommunications {
reqMessage.put("subject", subject);
reqMessage.put("body", messageToReviewer);
recipients = new JSONArray();
- for(String reviewer: reviewers){
+ for (String reviewer : reviewers) {
JSONObject recip = new JSONObject();
recip.put("id", reviewer);
recipients.add(recip);
@@ -615,12 +644,12 @@ public class SocialCommunications {
response = client.execute(postRequest);
mapResponseWritePost = getResponseEntityAsJSON(response);
- if (response.getStatusLine().getStatusCode() != 201){
+ if (response.getStatusLine().getStatusCode() != 201) {
logger.error("Failed to send message to editor : HTTP error code : "
+ response.getStatusLine().getStatusCode() + mapResponseWritePost.get("message"));
}
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Failed to send messages", e);
throw new Exception(e);
}
@@ -630,24 +659,28 @@ public class SocialCommunications {
/**
* Create the url to be send for reverting the operation
- * @param httpSession
+ *
+ * @param httpSession
* @return
- * @throws Exception
+ * @throws Exception
*/
- public static String getEncodedUrlManage(RevertableOperations operation, String administrator, long timestamp, String uuid, String clientCurrenturl) throws Exception{
+ public static String getEncodedUrlManage(RevertableOperations operation, String administrator, long timestamp,
+ String uuid, String clientCurrenturl) throws Exception {
logger.info("Request for revert link. Client current url is " + clientCurrenturl);
- RevertOperationUrl operationUrl = new RevertOperationUrl(clientCurrenturl, administrator, timestamp, uuid, operation);
+ RevertOperationUrl operationUrl = new RevertOperationUrl(clientCurrenturl, administrator, timestamp, uuid,
+ operation);
String shortUrl = operationUrl.getShortUrl();
return shortUrl;
}
/**
* Convert the json response to a map
+ *
* @param response
* @return
*/
@SuppressWarnings("unchecked")
- public static Map getResponseEntityAsJSON(HttpResponse response){
+ public static Map getResponseEntityAsJSON(HttpResponse response) {
Map toReturn = null;
HttpEntity entity = response.getEntity();
@@ -660,7 +693,7 @@ public class SocialCommunications {
ObjectMapper objectMapper = new ObjectMapper();
toReturn = objectMapper.readValue(jsonString, HashMap.class);
logger.debug("Map is " + toReturn);
- }catch(Exception e){
+ } catch (Exception e) {
logger.error("Failed to read json object", e);
}
}