diff --git a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
index b0ac971f29..8d5e506f65 100644
--- a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
+++ b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml
@@ -10,6 +10,7 @@
+
diff --git a/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java b/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
index 8b34e0f20f..fecf88e98a 100644
--- a/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
+++ b/source/java/org/alfresco/repo/activities/ActivityPostServiceImpl.java
@@ -19,7 +19,10 @@
package org.alfresco.repo.activities;
import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Date;
+import java.util.List;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.events.types.ActivityEvent;
@@ -61,7 +64,17 @@ public class ActivityPostServiceImpl implements ActivityPostService
private int estGridSize = 1;
private boolean userNamesAreCaseSensitive = false;
-
+
+ public void setIgnoredActivityTypes(String ignoredActivityTypes)
+ {
+ if (ignoredActivityTypes!= null && ignoredActivityTypes.length() > 0)
+ {
+ this.ignoredActivityTypes = Arrays.asList(ignoredActivityTypes.split(","));
+ }
+ }
+
+ private List ignoredActivityTypes = new ArrayList<>();
+
public void setUserNamesAreCaseSensitive(boolean userNamesAreCaseSensitive)
{
this.userNamesAreCaseSensitive = userNamesAreCaseSensitive;
@@ -199,6 +212,13 @@ public class ActivityPostServiceImpl implements ActivityPostService
{
throw new IllegalArgumentException("Invalid activity type - exceeds " + ActivityPostDAO.MAX_LEN_ACTIVITY_TYPE + " chars: " + activityType);
}
+
+ if (ignoredActivityTypes != null && ignoredActivityTypes.contains(activityType))
+ {
+ // do not log the activity for ignored activity types.
+ logger.debug("Ignoring activity type for posting: " + activityType);
+ return;
+ }
// optional - default to empty string
if (activityData == null)
@@ -371,13 +391,13 @@ public class ActivityPostServiceImpl implements ActivityPostService
}
/**
- * Validate that the nodeRef property - if present in the activity data - is valid
- * on a basic level (it can be used to construct a NodeRef object).
- *
- * @param jo
- * @throws JSONException
- */
- private NodeRef checkNodeRef(JSONObject jo) throws JSONException
+ * Validate that the nodeRef property - if present in the activity data - is valid
+ * on a basic level (it can be used to construct a NodeRef object).
+ *
+ * @param jo
+ * @throws JSONException
+ */
+ private NodeRef checkNodeRef(JSONObject jo) throws JSONException
{
String nodeRefStr = null;
try
diff --git a/source/test-java/org/alfresco/repo/activities/ActivityServiceImplTest.java b/source/test-java/org/alfresco/repo/activities/ActivityServiceImplTest.java
index 2388e127bd..49c14b6e72 100644
--- a/source/test-java/org/alfresco/repo/activities/ActivityServiceImplTest.java
+++ b/source/test-java/org/alfresco/repo/activities/ActivityServiceImplTest.java
@@ -100,7 +100,10 @@ public class ActivityServiceImplTest extends TestCase
activityService.postActivity("org.alfresco.testActivityType2", "", "", "");
activityService.postActivity("org.alfresco.testActivityType3", "site1", "appToolA", "{ \"var1\" : \"val1\" }");
- }
+
+ // ignore posting this type even though its valid
+ activityService.postActivity("file-previewed", "site1", "appToolA", "{ \"var1\" : \"val1\" }");
+ }
public void testPostInvalidActivities() throws Exception
{