diff --git a/CHANGELOG.md b/CHANGELOG.md index 735aeff..6216b32 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,12 @@ # Changelog +## [v1.1.1-SNAPSHOT] - 2022-04-21 + + - Partially added support for workspace notifications + ## [v1.0.0] - 2022-04-05 -First release + - First release This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). \ No newline at end of file diff --git a/pom.xml b/pom.xml index d26efb6..5d48293 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,7 @@ - + 4.0.0 @@ -10,7 +12,7 @@ org.gcube.social-networking social-service-model - 1.0.0 + 1.1.1-SNAPSHOT jar social-networking-service-model Social networking service model classes @@ -18,6 +20,7 @@ 1.8 2.9 + 2.14.0 social-networking ${project.basedir}/distro ${project.build.directory}/${project.build.finalName} @@ -51,12 +54,7 @@ - - org.gcube.portal - social-networking-library - [1.16.0, 2.0.0) - compile - + org.gcube.common storagehub-model @@ -90,35 +88,26 @@ - ${name} + ${project.name} org.apache.maven.plugins - maven-jar-plugin + maven-javadoc-plugin + + -Xdoclint:none + -Xdoclint:none + + 3.1.0 + generate-doc + install - test-jar + jar - - org.apache.maven.plugins - maven-surefire-plugin - - true - - - - org.apache.maven.plugins - maven-compiler-plugin - - ${java_version} - ${java_version} - - - \ No newline at end of file diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobNotificationBean.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobNotificationBean.java index 5f87855..18742ef 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobNotificationBean.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobNotificationBean.java @@ -2,14 +2,8 @@ package org.gcube.social_networking.socialnetworking.model.beans; import javax.validation.constraints.NotNull; -import org.gcube.portal.databook.shared.JobStatusType; -import org.gcube.portal.databook.shared.RunningJob; -import org.gcube.social_networking.socialnetworking.model.custom.serializers_deserializers.JobStatusTypeDeserializer; - -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; /** @@ -36,9 +30,8 @@ public class JobNotificationBean { private String serviceName; @JsonProperty("status") - @JsonDeserialize(using=JobStatusTypeDeserializer.class) @NotNull(message="status cannot be missing") - private JobStatusType status; + private JobStatusModelType status; @JsonProperty("status_message") private String statusMessage; @@ -56,7 +49,7 @@ public class JobNotificationBean { * @param statusMessage */ public JobNotificationBean(String recipient, String jobId, String jobName, - String serviceName, JobStatusType status, String statusMessage) { + String serviceName, JobStatusModelType status, String statusMessage) { super(); this.recipient = recipient; this.jobId = jobId; @@ -106,21 +99,14 @@ public class JobNotificationBean { this.jobName = jobName; } - public JobStatusType getStatus() { + public JobStatusModelType getStatus() { return status; } - public void setStatus(JobStatusType status) { + public void setStatus(JobStatusModelType status) { this.status = status; } - @JsonIgnore - public RunningJob getRunningJob(){ - - return new RunningJob(jobId, jobName, status, statusMessage, serviceName); - - } - @Override public String toString() { return "JobNotificationBean [" diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobStatusModelType.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobStatusModelType.java new file mode 100644 index 0000000..eba0987 --- /dev/null +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/JobStatusModelType.java @@ -0,0 +1,48 @@ +package org.gcube.social_networking.socialnetworking.model.beans; + +public enum JobStatusModelType { + /** + * The job has been cancelled. + */ + CANCELLED, + /** + * The job is in the process of being cancelled. + */ + CANCELLING, + /** + * The job has been deleted. + */ + DELETED, + /** + * The job is in the process of being deleted. + */ + DELETING,// + /** + * The job is being executed by job processor. + */ + EXECUTING,// + /** + * he job execution has failed. + */ + FAILED, + /** + * The job is new. + */ + NEW,// + /** + * The job is submitted for execution. + */ + SUBMITTED, + /** + * The job has completed successfully + */ + SUCCEEDED, + /** + * The job execution has timed out. + */ + TIMED_OUT, + /** + * The job is waiting for available job processor. + */ + WAITING +} diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WSUnsharedFolderNotificationBean.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WSUnsharedFolderNotificationBean.java new file mode 100644 index 0000000..e9ee911 --- /dev/null +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WSUnsharedFolderNotificationBean.java @@ -0,0 +1,61 @@ +package org.gcube.social_networking.socialnetworking.model.beans; + +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.annotation.JsonProperty; + +public class WSUnsharedFolderNotificationBean implements WorkspaceNotificationBean { + + /** + * the username of the user you wish to notify + */ + @JsonProperty("userIdToNotify") + @NotNull(message="recipient cannot be missing") + private String userIdToNotify; + + @JsonProperty("unsharedFolderId") + @NotNull(message="folderid cannot be missing") + private String unsharedFolderId; + + @JsonProperty("unsharedFolderName") + @NotNull(message="unsharedFolderName cannot be missing") + private String unsharedFolderName; + + public WSUnsharedFolderNotificationBean(String userIdToNotify, String unsharedFolderId, String unsharedFolderName) { + super(); + this.userIdToNotify = userIdToNotify; + this.unsharedFolderId = unsharedFolderId; + this.unsharedFolderName = unsharedFolderName; + } + + @Override + public String toString() { + return "WSUnsharedFolderNotificationBean [userIdToNotify=" + userIdToNotify + ", unsharedFolderId=" + + unsharedFolderId + ", unsharedFolderName=" + unsharedFolderName + "]"; + } + + public String getUserIdToNotify() { + return userIdToNotify; + } + + public void setUserIdToNotify(String userIdToNotify) { + this.userIdToNotify = userIdToNotify; + } + + public String getUnsharedFolderId() { + return unsharedFolderId; + } + + public void setUnsharedFolderId(String unsharedFolderId) { + this.unsharedFolderId = unsharedFolderId; + } + + public String getUnsharedFolderName() { + return unsharedFolderName; + } + + public void setUnsharedFolderName(String unsharedFolderName) { + this.unsharedFolderName = unsharedFolderName; + } +} + \ No newline at end of file diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationBean.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationBean.java index c1312b0..314a069 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationBean.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationBean.java @@ -1,5 +1,5 @@ package org.gcube.social_networking.socialnetworking.model.beans; -interface WorkspaceNotificationBean { +public interface WorkspaceNotificationBean { } diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java index eec09f6..ae6e239 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java @@ -3,9 +3,9 @@ package org.gcube.social_networking.socialnetworking.model.beans; public class WorkspaceNotificationMessage { private WorkspaceNotificationType type; - + private WorkspaceNotificationBean bean; - + public WorkspaceNotificationMessage(WorkspaceNotificationType type, WorkspaceNotificationBean bean) { super(); this.type = type; @@ -19,7 +19,7 @@ public class WorkspaceNotificationMessage { public WorkspaceNotificationBean getBean() { return bean; } - - - + + + } diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationType.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationType.java index 1a0febd..fefff66 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationType.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationType.java @@ -5,11 +5,16 @@ public enum WorkspaceNotificationType { /** * use to notify a user she got a workspace item new in some of her workspace shared folder */ - WP_ITEM_NEW(WSAddedItemNotificationBean.class), + ITEM_NEW(WSAddedItemNotificationBean.class), /** * use to notify a user he got a workspace folder shared */ - WP_FOLDER_SHARE(WSSharedFolderNotificationBean.class); + FOLDER_SHARE(WSSharedFolderNotificationBean.class), + /** + * use to notify a user he got a workspace folder Unshared + */ + FOLDER_UNSHARE(WSUnsharedFolderNotificationBean.class); + Class beanClass; diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/custom/serializers_deserializers/JobStatusTypeDeserializer.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/custom/serializers_deserializers/JobStatusTypeDeserializer.java deleted file mode 100644 index 07828ba..0000000 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/custom/serializers_deserializers/JobStatusTypeDeserializer.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.gcube.social_networking.socialnetworking.model.custom.serializers_deserializers; - -import java.io.IOException; - -import org.gcube.portal.databook.shared.JobStatusType; -import org.slf4j.LoggerFactory; - -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; - -/** - * Deserializer used to map a string representing the status in this JobNotificationBean to the JobStatusType enum. - * @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it) - */ -public class JobStatusTypeDeserializer extends JsonDeserializer{ - - private static final org.slf4j.Logger logger = LoggerFactory.getLogger(JobStatusTypeDeserializer.class); - - @Override - public JobStatusType deserialize(JsonParser p, - DeserializationContext ctxt) throws IOException, - JsonProcessingException { - - logger.debug("Status deserializer called"); - - String status = p.getText(); - JobStatusType toReturn = null; - - logger.debug("Status coming from json object is " + status); - - JobStatusType[] values = JobStatusType.values(); - - for (JobStatusType jobStatusType : values) { - if(jobStatusType.toString().toLowerCase().contains(status.toLowerCase())){ - toReturn = jobStatusType; - break; - } - } - - logger.debug("JOB STATUS deserialized as " + toReturn); - return toReturn; - } - -} \ No newline at end of file diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/output/ResponseBean.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/output/ResponseBean.java index 68ed890..424de82 100644 --- a/src/main/java/org/gcube/social_networking/socialnetworking/model/output/ResponseBean.java +++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/output/ResponseBean.java @@ -23,7 +23,6 @@ public class ResponseBean implements Serializable { * @param success * @param message * @param result - * @param help */ public ResponseBean(boolean success, String message, T result) { super();