diff --git a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
index 649fb930f3..391a463c2d 100644
--- a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
+++ b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
@@ -9,6 +9,7 @@
+
diff --git a/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java b/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
index 9e8394e5ef..e65e1dab3b 100644
--- a/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
+++ b/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
@@ -22,9 +22,13 @@ import java.sql.SQLException;
import java.util.Date;
import org.alfresco.error.AlfrescoRuntimeException;
+import org.alfresco.events.types.ActivityEvent;
+import org.alfresco.events.types.Event;
import org.alfresco.repo.activities.post.lookup.PostLookup;
import org.alfresco.repo.domain.activities.ActivityPostDAO;
import org.alfresco.repo.domain.activities.ActivityPostEntity;
+import org.alfresco.repo.events.EventPreparator;
+import org.alfresco.repo.events.EventPublisher;
import org.alfresco.repo.security.authentication.AuthenticationUtil;
import org.alfresco.repo.tenant.TenantService;
import org.alfresco.service.cmr.activities.ActivityPostService;
@@ -46,9 +50,10 @@ import org.springframework.extensions.surf.util.ParameterCheck;
public class ActivityPostServiceImpl implements ActivityPostService
{
private static final Log logger = LogFactory.getLog(ActivityServiceImpl.class);
-
+
private ActivityPostDAO postDAO;
private TenantService tenantService;
+ private EventPublisher eventPublisher;
private int estGridSize = 1;
private boolean userNamesAreCaseSensitive = false;
@@ -73,12 +78,17 @@ public class ActivityPostServiceImpl implements ActivityPostService
this.estGridSize = estGridSize;
}
+ public void setEventPublisher(EventPublisher eventPublisher)
+ {
+ this.eventPublisher = eventPublisher;
+ }
+
/* (non-Javadoc)
* @see org.alfresco.service.cmr.activities.ActivityService#postActivity(java.lang.String, java.lang.String, java.lang.String, java.lang.String)
*/
public void postActivity(String activityType, String siteId, String appTool, String activityData)
{
- postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, getCurrentUser());
+ postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, getCurrentUser(), null);
}
/* (non-Javadoc)
@@ -86,7 +96,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
*/
public void postActivity(String activityType, String siteId, String appTool, String activityData, String userId)
{
- postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, userId);
+ postActivity(activityType, siteId, appTool, activityData, ActivityPostEntity.STATUS.PENDING, userId, null);
}
/* (non-Javadoc)
@@ -99,7 +109,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
StringBuffer sb = new StringBuffer();
sb.append("{").append("\""+PostLookup.JSON_NODEREF_LOOKUP+"\":\"").append(nodeRef.toString()).append("\"").append("}");
- postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser());
+ postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(), nodeRef);
}
/* (non-Javadoc)
@@ -114,7 +124,7 @@ public class ActivityPostServiceImpl implements ActivityPostService
.append("\"name\":\"").append(name).append("\"")
.append("}");
- postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser());
+ postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(),nodeRef);
}
/* (non-Javadoc)
@@ -135,10 +145,10 @@ public class ActivityPostServiceImpl implements ActivityPostService
.append("\""+PostLookup.JSON_NODEREF_PARENT+"\":\"").append(parentNodeRef.toString()).append("\"")
.append("}");
- postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser());
+ postActivity(activityType, siteId, appTool, sb.toString(), ActivityPostEntity.STATUS.PENDING, getCurrentUser(), nodeRef);
}
- private void postActivity(String activityType, String siteId, String appTool, String activityData, ActivityPostEntity.STATUS status, String userId)
+ private void postActivity(final String activityType, String siteId, String appTool, String activityData, ActivityPostEntity.STATUS status, String userId, NodeRef nodeRef)
{
try
@@ -231,16 +241,19 @@ public class ActivityPostServiceImpl implements ActivityPostService
try
{
- Date postDate = new Date();
- ActivityPostEntity activityPost = new ActivityPostEntity();
+ final Date postDate = new Date();
+ final ActivityPostEntity activityPost = new ActivityPostEntity();
+ final String network = tenantService.getName(siteId);
+ final String nodeId = nodeRef!=null?nodeRef.toString():null;
+ final String site = siteId;
+
//MNT-9104 If username contains uppercase letters the action of joining a site will not be displayed in "My activities"
if (! userNamesAreCaseSensitive)
{
userId = userId.toLowerCase();
}
- activityPost.setUserId(userId);
-
- activityPost.setSiteNetwork(tenantService.getName(siteId));
+ activityPost.setUserId(userId);
+ activityPost.setSiteNetwork(network);
activityPost.setAppTool(appTool);
activityPost.setActivityData(activityData);
@@ -249,6 +262,15 @@ public class ActivityPostServiceImpl implements ActivityPostService
activityPost.setStatus(status.toString());
activityPost.setLastModified(postDate);
+ eventPublisher.publishEvent(new EventPreparator(){
+ @Override
+ public Event prepareEvent(String user, String networkId, String transactionId)
+ {
+ return new ActivityEvent(activityType, transactionId, networkId, postDate.getTime(), user, nodeId,
+ site, null, null, activityPost.getActivityData());
+ }
+ });
+
// hash the userid to generate a job task node
int nodeCount = estGridSize;
int userHashCode = userId.hashCode();