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 {