diff --git a/CHANGELOG.md b/CHANGELOG.md
index d1f7da2..c3f047e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
# Changelog
-## [v1.1.3-SNAPSHOT] - 2022-05-02
+## [v1.1.5-SNAPSHOT] - 2022-05-02
- Partially added support for workspace notifications
diff --git a/pom.xml b/pom.xml
index f47e805..3ba2a95 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.gcube.social-networking
social-service-model
- 1.1.3-SNAPSHOT
+ 1.1.5-SNAPSHOT
jar
social-networking-service-model
Social networking service model classes
@@ -55,6 +55,19 @@
+
+
+ com.webcohesion.enunciate
+ enunciate-core-annotations
+ ${enunciate.version}
+ provided
+
+
+ com.webcohesion.enunciate
+ enunciate-rt-util
+ ${enunciate.version}
+ provided
+
org.gcube.common
storagehub-model
diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java
index 615db32..90ce9a0 100644
--- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java
+++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotification.java
@@ -1,8 +1,26 @@
package org.gcube.social_networking.socialnetworking.model.beans;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.annotation.JsonTypeInfo.As;
+/**
+ * The WorkspaceNotification super class
+ */
@JsonIgnoreProperties(ignoreUnknown = true)
-public interface WorkspaceNotification {
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME,
+include = As.PROPERTY, property = "type") @JsonSubTypes({
+@JsonSubTypes.Type(value = WorkspaceNotificationSharedFolder.class, name = "FOLDER_SHARE"),
+@JsonSubTypes.Type(value = WorkspaceNotificationUnsharedFolder.class, name = "FOLDER_UNSHARE"),
+@JsonSubTypes.Type(value = WorkspaceNotificationAddedItem.class, name = "ITEM_NEW")
+})
+public abstract class WorkspaceNotification {
+ WorkspaceNotificationType type;
+ public WorkspaceNotificationType getType() {
+ return type;
+ }
+
+
}
diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java
index e8b70b9..57e1e9d 100644
--- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java
+++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationAddedItem.java
@@ -7,7 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
@JsonIgnoreProperties(ignoreUnknown=true)
-public class WorkspaceNotificationAddedItem implements WorkspaceNotification {
+@JsonTypeName("ITEM_NEW")
+public class WorkspaceNotificationAddedItem extends WorkspaceNotification {
/**
* the username of the user you wish to notify
*/
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
deleted file mode 100644
index 49ee44c..0000000
--- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationMessage.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package org.gcube.social_networking.socialnetworking.model.beans;
-
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
-
-public class WorkspaceNotificationMessage {
-
- private WorkspaceNotificationType type;
-
- @JsonTypeInfo(use = JsonTypeInfo.Id.CLASS)
- private WorkspaceNotification bean;
-
- public WorkspaceNotificationMessage() {
- super();
- }
-
- public WorkspaceNotificationMessage(WorkspaceNotificationType type, WorkspaceNotification bean) {
- super();
- this.type = type;
- this.bean = bean;
- }
-
- public WorkspaceNotificationType getType() {
- return type;
- }
-
- public WorkspaceNotification getBean() {
- return bean;
- }
-
- public void setType(WorkspaceNotificationType type) {
- this.type = type;
- }
-
- public void setBean(WorkspaceNotification bean) {
- this.bean = bean;
- }
-}
diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java
index 7ea3591..5e9a48f 100644
--- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java
+++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationSharedFolder.java
@@ -8,7 +8,8 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
@JsonIgnoreProperties(ignoreUnknown=true)
-public class WorkspaceNotificationSharedFolder implements WorkspaceNotification {
+@JsonTypeName("SHARED_FOLDER")
+public class WorkspaceNotificationSharedFolder extends WorkspaceNotification {
/**
* the username of the user you wish to notify
diff --git a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java
index 566e4c0..534ee57 100644
--- a/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java
+++ b/src/main/java/org/gcube/social_networking/socialnetworking/model/beans/WorkspaceNotificationUnsharedFolder.java
@@ -7,7 +7,8 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeName;
@JsonIgnoreProperties(ignoreUnknown=true)
-public class WorkspaceNotificationUnsharedFolder implements WorkspaceNotification {
+@JsonTypeName("UNSHARED_FOLDER")
+public class WorkspaceNotificationUnsharedFolder extends WorkspaceNotification {
/**
* the username of the user you wish to notify