Class ActivityServiceImpl

  • All Implemented Interfaces:
    ActivityPostService, ActivityService, org.springframework.beans.factory.InitializingBean

    public class ActivityServiceImpl
    extends java.lang.Object
    implements ActivityService, org.springframework.beans.factory.InitializingBean
    Activity Service Implementation
    Author:
    janv
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void afterPropertiesSet()  
      boolean existsFeedControl​(FeedControl feedControl)
      For current user, does the feed control exist ?
      java.util.List<FeedControl> getFeedControls()
      For current user, get feed controls
      java.util.List<FeedControl> getFeedControls​(java.lang.String userId)
      For given user, get feed controls
      int getMaxFeedItems()
      Return maximum configured item entries (per feed)
      org.alfresco.query.PagingResults<ActivityFeedEntity> getPagedUserFeedEntries​(java.lang.String feedUserId, java.lang.String siteId, boolean excludeThisUser, boolean excludeOtherUsers, long minFeedId, org.alfresco.query.PagingRequest pagingRequest)  
      java.util.List<java.lang.String> getSiteFeedEntries​(java.lang.String siteId)
      Retrieve site feed
      protected org.alfresco.service.cmr.repository.NodeRef getUserAvatarNodeRef​(ActivityFeedEntity activityFeed, java.util.Map<java.lang.String,​org.alfresco.service.cmr.repository.NodeRef> userIdToAvatarNodeRefCache)
      Attempts to find the avatar NodeRef for the user in supplied ActivityFeedEntity.
      java.util.List<java.lang.String> getUserFeedEntries​(java.lang.String feedUserId, java.lang.String siteId)
      Retrieve user feed with optional site filter Will return activities for all users across all sites, or optionally for all users for specified site.
      java.util.List<java.lang.String> getUserFeedEntries​(java.lang.String feedUserId, java.lang.String siteId, boolean excludeThisUser, boolean excludeOtherUsers)
      Retrieve user feed with optional site filter and optional user filters Will return activities for users across all sites, or optionally for users for specified site.
      java.util.List<ActivityFeedEntity> getUserFeedEntries​(java.lang.String feedUserId, java.lang.String siteId, boolean excludeThisUser, boolean excludeOtherUsers, long minFeedId)
      Retrieve user feed with optional site filter and optional user filters and optional min feed DB id Will return activities for users across all sites, or optionally for users for specified site.
      java.util.List<java.lang.String> getUserFeedEntries​(java.lang.String feedUserId, java.lang.String siteId, boolean excludeThisUser, boolean excludeOtherUsers, java.util.Set<java.lang.String> userFilter, java.util.Set<java.lang.String> actvityFilter)
      Retrieve user feed with optional site filter and optional user filters Will return activities for users across all sites, or optionally for users for specified site.
      java.util.List<ActivityFeedEntity> getUserFeedEntries​(java.lang.String feedUserId, java.lang.String siteId, boolean excludeThisUser, boolean excludeOtherUsers, java.util.Set<java.lang.String> userFilter, java.util.Set<java.lang.String> actvityFilter, long minFeedId)
      Retrieve user feed with optional site filter and optional user filters and optional min feed DB id Will return activities for users across all sites, or optionally for users for specified site.
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, java.lang.String activityData)
      Post a custom activity type
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, java.lang.String activityData, java.lang.String userId)
      Post a custom activity type
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, java.lang.String jsonActivityData, org.alfresco.sync.repo.Client client)
      Post a custom activity type
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, java.lang.String jsonActivityData, org.alfresco.sync.repo.Client client, FileInfo contentNodeInfo)
      Post a custom activity type
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, org.alfresco.service.cmr.repository.NodeRef nodeRef)
      Post a pre-defined activity type - certain activity data will be looked-up asynchronously, including: name (of nodeRef) displayPath typeQName firstName (of posting user) lastName (of posting user)
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String name)
      Post a pre-defined activity type - eg.
      void postActivity​(java.lang.String activityType, java.lang.String siteId, java.lang.String appTool, org.alfresco.service.cmr.repository.NodeRef nodeRef, java.lang.String name, org.alfresco.service.namespace.QName typeQName, org.alfresco.service.cmr.repository.NodeRef parentNodeRef)
      Post a pre-defined activity type - eg.
      void setActivityPostService​(ActivityPostService activityPostService)  
      void setAuthorityService​(AuthorityService authorityService)  
      void setFeedCleaner​(FeedCleaner feedCleaner)  
      void setFeedControl​(FeedControl feedControl)
      For current user, set feed control (opt-out) for a site or an appTool or a site/appTool combination
      void setFeedControlDAO​(FeedControlDAO feedControlDAO)  
      void setFeedDAO​(ActivityFeedDAO feedDAO)  
      void setMaxFeedItems​(int maxFeedItems)  
      void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)  
      void setPersonService​(PersonService personService)  
      void setSiteService​(SiteService siteService)  
      void setTenantService​(org.alfresco.repo.tenant.TenantService tenantService)  
      void setUserNamesAreCaseSensitive​(boolean userNamesAreCaseSensitive)  
      void unsetFeedControl​(FeedControl feedControl)
      For current user, unset feed control
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ActivityServiceImpl

        public ActivityServiceImpl()
    • Method Detail

      • setMaxFeedItems

        public void setMaxFeedItems​(int maxFeedItems)
      • setUserNamesAreCaseSensitive

        public void setUserNamesAreCaseSensitive​(boolean userNamesAreCaseSensitive)
      • setFeedControlDAO

        public void setFeedControlDAO​(FeedControlDAO feedControlDAO)
      • setFeedCleaner

        public void setFeedCleaner​(FeedCleaner feedCleaner)
      • setAuthorityService

        public void setAuthorityService​(AuthorityService authorityService)
      • setTenantService

        public void setTenantService​(org.alfresco.repo.tenant.TenantService tenantService)
      • setSiteService

        public void setSiteService​(SiteService siteService)
      • setActivityPostService

        public void setActivityPostService​(ActivityPostService activityPostService)
      • setPersonService

        public void setPersonService​(PersonService personService)
      • setNodeService

        public void setNodeService​(org.alfresco.service.cmr.repository.NodeService nodeService)
      • afterPropertiesSet

        public void afterPropertiesSet()
                                throws java.lang.Exception
        Specified by:
        afterPropertiesSet in interface org.springframework.beans.factory.InitializingBean
        Throws:
        java.lang.Exception
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 java.lang.String activityData)
        Description copied from interface: ActivityPostService
        Post a custom activity type
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        activityData - - required
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 java.lang.String activityData,
                                 java.lang.String userId)
        Description copied from interface: ActivityPostService
        Post a custom activity type
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        activityData - - required
        userId - - required
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 org.alfresco.service.cmr.repository.NodeRef nodeRef)
        Description copied from interface: ActivityPostService
        Post a pre-defined activity type - certain activity data will be looked-up asynchronously, including: name (of nodeRef) displayPath typeQName firstName (of posting user) lastName (of posting user)
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        nodeRef - - required - do not use for deleted (or about to be deleted) nodeRef
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                 java.lang.String name)
        Description copied from interface: ActivityPostService
        Post a pre-defined activity type - eg. for checked-out nodeRef or renamed nodeRef
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        nodeRef - - required - do not use deleted (or about to be deleted) nodeRef
        name - - optional - name of node (eg. prior to name change)
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 org.alfresco.service.cmr.repository.NodeRef nodeRef,
                                 java.lang.String name,
                                 org.alfresco.service.namespace.QName typeQName,
                                 org.alfresco.service.cmr.repository.NodeRef parentNodeRef)
        Description copied from interface: ActivityPostService
        Post a pre-defined activity type - eg. for deleted nodeRef
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        nodeRef - - required - can be a deleted (or about to be deleted) nodeRef
        name - - optional - name of name
        typeQName - - optional - type of node
        parentNodeRef - - required - used to lookup path/displayPath
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 java.lang.String jsonActivityData,
                                 org.alfresco.sync.repo.Client client)
        Description copied from interface: ActivityPostService
        Post a custom activity type
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        jsonActivityData - - required
      • postActivity

        public void postActivity​(java.lang.String activityType,
                                 java.lang.String siteId,
                                 java.lang.String appTool,
                                 java.lang.String jsonActivityData,
                                 org.alfresco.sync.repo.Client client,
                                 FileInfo contentNodeInfo)
        Description copied from interface: ActivityPostService
        Post a custom activity type
        Specified by:
        postActivity in interface ActivityPostService
        Parameters:
        activityType - - required
        siteId - - optional, if null will be stored as empty string
        appTool - - optional, if null will be stored as empty string
        jsonActivityData - - required
        contentNodeInfo - FileInfo
      • getUserFeedEntries

        public java.util.List<java.lang.String> getUserFeedEntries​(java.lang.String feedUserId,
                                                                   java.lang.String siteId)
        Description copied from interface: ActivityService
        Retrieve user feed with optional site filter Will return activities for all users across all sites, or optionally for all users for specified site.
        Specified by:
        getUserFeedEntries in interface ActivityService
        Parameters:
        feedUserId - - required
        siteId - - optional, if set then will filter by given siteId else return all sites
        Returns:
        list of JSON feed entries
      • getUserFeedEntries

        public java.util.List<java.lang.String> getUserFeedEntries​(java.lang.String feedUserId,
                                                                   java.lang.String siteId,
                                                                   boolean excludeThisUser,
                                                                   boolean excludeOtherUsers)
        Description copied from interface: ActivityService
        Retrieve user feed with optional site filter and optional user filters Will return activities for users across all sites, or optionally for users for specified site. User filters are: - all user activities (excludeThisUser = false, excludeOtherUsers = false) - other user activities (excludeThisUser = true, excludeOtherUsers = false) - my user activities (excludeThisUser = false, excludeOtherUsers = true) note: if both excludes are true then no activities will be returned.
        Specified by:
        getUserFeedEntries in interface ActivityService
        Parameters:
        feedUserId - - required
        siteId - - optional, if set then will filter by given siteId else return all sites
        excludeThisUser - - if TRUE then will exclude activities for this user (hence returning other users only)
        excludeOtherUsers - - if TRUE then will exclude activities for other users (hence returning this user only)
        Returns:
        list of JSON feed entries
      • getUserFeedEntries

        public java.util.List<java.lang.String> getUserFeedEntries​(java.lang.String feedUserId,
                                                                   java.lang.String siteId,
                                                                   boolean excludeThisUser,
                                                                   boolean excludeOtherUsers,
                                                                   java.util.Set<java.lang.String> userFilter,
                                                                   java.util.Set<java.lang.String> actvityFilter)
        Description copied from interface: ActivityService
        Retrieve user feed with optional site filter and optional user filters Will return activities for users across all sites, or optionally for users for specified site. User filters are: - all user activities (excludeThisUser = false, excludeOtherUsers = false) - other user activities (excludeThisUser = true, excludeOtherUsers = false) - my user activities (excludeThisUser = false, excludeOtherUsers = true) note: if both excludes are true then no activities will be returned.
        Specified by:
        getUserFeedEntries in interface ActivityService
        Parameters:
        feedUserId - - required
        siteId - - optional, if set then will filter by given siteId else return all sites
        excludeThisUser - - if TRUE then will exclude activities for this user (hence returning other users only)
        excludeOtherUsers - - if TRUE then will exclude activities for other users (hence returning this user only)
        userFilter - - if not NULL then will only return activities of users in this set
        actvityFilter - - if not NULL then will only return activities that are in this set
        Returns:
        list of JSON feed entries
      • getPagedUserFeedEntries

        public org.alfresco.query.PagingResults<ActivityFeedEntity> getPagedUserFeedEntries​(java.lang.String feedUserId,
                                                                                            java.lang.String siteId,
                                                                                            boolean excludeThisUser,
                                                                                            boolean excludeOtherUsers,
                                                                                            long minFeedId,
                                                                                            org.alfresco.query.PagingRequest pagingRequest)
        Specified by:
        getPagedUserFeedEntries in interface ActivityService
      • getUserAvatarNodeRef

        protected org.alfresco.service.cmr.repository.NodeRef getUserAvatarNodeRef​(ActivityFeedEntity activityFeed,
                                                                                   java.util.Map<java.lang.String,​org.alfresco.service.cmr.repository.NodeRef> userIdToAvatarNodeRefCache)
        Attempts to find the avatar NodeRef for the user in supplied ActivityFeedEntity. As this is aimed at setting the NodeRef from a client-side point of view there are a couple of activity types where the user is taken from the activity summary rather than from the poster (e.g. when a user role is changed). A cache should be passed in from which to retrieve previously fetched NodeRefs for efficiency.
        Parameters:
        activityFeed - ActivityFeedEntity
        Returns:
        NodeRef
      • getUserFeedEntries

        public java.util.List<ActivityFeedEntity> getUserFeedEntries​(java.lang.String feedUserId,
                                                                     java.lang.String siteId,
                                                                     boolean excludeThisUser,
                                                                     boolean excludeOtherUsers,
                                                                     long minFeedId)
        Description copied from interface: ActivityService
        Retrieve user feed with optional site filter and optional user filters and optional min feed DB id Will return activities for users across all sites, or optionally for users for specified site. User filters are: - all user activities (excludeThisUser = false, excludeOtherUsers = false) - other user activities (excludeThisUser = true, excludeOtherUsers = false) - my user activities (excludeThisUser = false, excludeOtherUsers = true) note: if both excludes are true then no activities will be returned.
        Specified by:
        getUserFeedEntries in interface ActivityService
        Parameters:
        feedUserId - - required
        siteId - - optional, if set then will filter by given siteId else return all sites
        excludeThisUser - - if TRUE then will exclude activities for this user (hence returning other users only)
        excludeOtherUsers - - if TRUE then will exclude activities for other users (hence returning this user only)
        minFeedId - - inclusive from min feed DB id, if -1 then return all available
        Returns:
        list of JSON feed entries
      • getUserFeedEntries

        public java.util.List<ActivityFeedEntity> getUserFeedEntries​(java.lang.String feedUserId,
                                                                     java.lang.String siteId,
                                                                     boolean excludeThisUser,
                                                                     boolean excludeOtherUsers,
                                                                     java.util.Set<java.lang.String> userFilter,
                                                                     java.util.Set<java.lang.String> actvityFilter,
                                                                     long minFeedId)
        Description copied from interface: ActivityService
        Retrieve user feed with optional site filter and optional user filters and optional min feed DB id Will return activities for users across all sites, or optionally for users for specified site. User filters are: - all user activities (excludeThisUser = false, excludeOtherUsers = false) - other user activities (excludeThisUser = true, excludeOtherUsers = false) - my user activities (excludeThisUser = false, excludeOtherUsers = true) note: if both excludes are true then no activities will be returned.
        Specified by:
        getUserFeedEntries in interface ActivityService
        Parameters:
        feedUserId - - required
        siteId - - optional, if set then will filter by given siteId else return all sites
        excludeThisUser - - if TRUE then will exclude activities for this user (hence returning other users only)
        excludeOtherUsers - - if TRUE then will exclude activities for other users (hence returning this user only)
        userFilter - - if not NULL then will only return activities of users in this set
        actvityFilter - - if not NULL then will only return activities that are in this set
        minFeedId - - inclusive from min feed DB id, if -1 then return all available
        Returns:
        list of JSON feed entries
      • getSiteFeedEntries

        public java.util.List<java.lang.String> getSiteFeedEntries​(java.lang.String siteId)
        Description copied from interface: ActivityService
        Retrieve site feed
        Specified by:
        getSiteFeedEntries in interface ActivityService
        Parameters:
        siteId - - required
        Returns:
        list of JSON feed entries
      • setFeedControl

        public void setFeedControl​(FeedControl feedControl)
        Description copied from interface: ActivityService
        For current user, set feed control (opt-out) for a site or an appTool or a site/appTool combination
        Specified by:
        setFeedControl in interface ActivityService
        Parameters:
        feedControl - - required
      • getFeedControls

        public java.util.List<FeedControl> getFeedControls​(java.lang.String userId)
        Description copied from interface: ActivityService
        For given user, get feed controls
        Specified by:
        getFeedControls in interface ActivityService
        Parameters:
        userId - - required (must match
        Returns:
        list of user feed controls
      • existsFeedControl

        public boolean existsFeedControl​(FeedControl feedControl)
        Description copied from interface: ActivityService
        For current user, does the feed control exist ?
        Specified by:
        existsFeedControl in interface ActivityService
        Parameters:
        feedControl - - required
        Returns:
        true, if user feed control exists