diff --git a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml index 17e1d62dbc..ff0b8470fd 100644 --- a/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml +++ b/config/alfresco/subsystems/ActivitiesFeed/default/activities-feed-context.xml @@ -152,7 +152,7 @@ - + diff --git a/source/java/org/alfresco/repo/activities/feed/AbstractUserNotifier.java b/source/java/org/alfresco/repo/activities/feed/AbstractUserNotifier.java index c5fa42446a..7accc20754 100644 --- a/source/java/org/alfresco/repo/activities/feed/AbstractUserNotifier.java +++ b/source/java/org/alfresco/repo/activities/feed/AbstractUserNotifier.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2013 Alfresco Software Limited. + * Copyright (C) 2005-2014 Alfresco Software Limited. * * This file is part of Alfresco * @@ -44,9 +44,9 @@ import org.json.JSONException; import org.springframework.beans.factory.ObjectFactory; /** - * * @since 4.0 - * + * + * @author Alex Miller */ public abstract class AbstractUserNotifier implements UserNotifier { @@ -59,52 +59,52 @@ public abstract class AbstractUserNotifier implements UserNotifier protected SiteService siteService; protected ObjectFactory activitiesFeedModelBuilderFactory; - public void setActivityService(ActivityService activityService) - { - this.activityService = activityService; - } + public void setActivityService(ActivityService activityService) + { + this.activityService = activityService; + } - public void setNamespaceService(NamespaceService namespaceService) - { - this.namespaceService = namespaceService; - } + public void setNamespaceService(NamespaceService namespaceService) + { + this.namespaceService = namespaceService; + } - public void setRepoAdminService(RepoAdminService repoAdminService) - { - this.repoAdminService = repoAdminService; - } + public void setRepoAdminService(RepoAdminService repoAdminService) + { + this.repoAdminService = repoAdminService; + } - public void setNodeService(NodeService nodeService) - { - this.nodeService = nodeService; - } + public void setNodeService(NodeService nodeService) + { + this.nodeService = nodeService; + } - public void setSiteService(SiteService siteService) - { - this.siteService = siteService; - } - - public void setActivitiesFeedModdelBuilderFactory(ObjectFactory activitivitesFeedModelBuilderFactory) - { - this.activitiesFeedModelBuilderFactory = activitivitesFeedModelBuilderFactory; - } - - /** + public void setSiteService(SiteService siteService) + { + this.siteService = siteService; + } + + public void setActivitiesFeedModelBuilderFactory(ObjectFactory activitiesFeedModelBuilder) + { + this.activitiesFeedModelBuilderFactory = activitiesFeedModelBuilder; + } + + /** * Perform basic checks to ensure that the necessary dependencies were injected. */ protected void checkProperties() { - PropertyCheck.mandatory(this, "activitiesFeedModdelBuilderFactory", activitiesFeedModelBuilderFactory); + PropertyCheck.mandatory(this, "activitiesFeedModelBuilderFactory", activitiesFeedModelBuilderFactory); PropertyCheck.mandatory(this, "activityService", activityService); PropertyCheck.mandatory(this, "nodeService", nodeService); PropertyCheck.mandatory(this, "namespaceService", namespaceService); PropertyCheck.mandatory(this, "siteService", siteService); } - protected abstract boolean skipUser(NodeRef personNodeRef); - protected abstract Long getFeedId(NodeRef personNodeRef); - protected abstract void notifyUser(NodeRef personNodeRef, String subjectLine, Object[] subjectParams, Map model, String templateNodeRef); - + protected abstract boolean skipUser(NodeRef personNodeRef); + protected abstract Long getFeedId(NodeRef personNodeRef); + protected abstract void notifyUser(NodeRef personNodeRef, String subjectLine, Object[] subjectParams, Map model, String templateNodeRef); + private void addSiteName(String siteId, Map siteNames) { if (siteId == null) @@ -135,32 +135,32 @@ public abstract class AbstractUserNotifier implements UserNotifier } } - public Pair notifyUser(final NodeRef personNodeRef, String subject, Object[] subjectParams, Map siteNames, - String shareUrl, int repeatIntervalMins, String templateNodeRef) - { - Map personProps = nodeService.getProperties(personNodeRef); + public Pair notifyUser(final NodeRef personNodeRef, String subject, Object[] subjectParams, Map siteNames, + String shareUrl, int repeatIntervalMins, String templateNodeRef) + { + Map personProps = nodeService.getProperties(personNodeRef); - String feedUserId = (String)personProps.get(ContentModel.PROP_USERNAME); + String feedUserId = (String)personProps.get(ContentModel.PROP_USERNAME); - if (skipUser(personNodeRef)) - { - // skip - return null; - } + if (skipUser(personNodeRef)) + { + // skip + return null; + } - // where did we get up to ? - Long feedDBID = getFeedId(personNodeRef); + // where did we get up to ? + Long feedDBID = getFeedId(personNodeRef); - // own + others (note: template can be changed to filter out user's own activities if needed) - if (logger.isDebugEnabled()) - { - logger.debug("Get user feed entries: " + feedUserId + ", " + feedDBID); - } - List feedEntries = activityService.getUserFeedEntries(feedUserId, null, false, false, null, null, feedDBID); - - if (feedEntries.size() > 0) - { - ActivitiesFeedModelBuilder modelBuilder; + // own + others (note: template can be changed to filter out user's own activities if needed) + if (logger.isDebugEnabled()) + { + logger.debug("Get user feed entries: " + feedUserId + ", " + feedDBID); + } + List feedEntries = activityService.getUserFeedEntries(feedUserId, null, false, false, null, null, feedDBID); + + if (feedEntries.size() > 0) + { + ActivitiesFeedModelBuilder modelBuilder; try { modelBuilder = activitiesFeedModelBuilderFactory.getObject(); @@ -170,60 +170,60 @@ public abstract class AbstractUserNotifier implements UserNotifier logger.warn("Unable to create model builder: " + error.getMessage()); return null; } - - for (ActivityFeedEntity feedEntry : feedEntries) - { - try - { - modelBuilder.addAcctivitiyFeedEntry(feedEntry); + + for (ActivityFeedEntity feedEntry : feedEntries) + { + try + { + modelBuilder.addActivityFeedEntry(feedEntry); - String siteId = feedEntry.getSiteNetwork(); - addSiteName(siteId, siteNames); - } - catch (JSONException je) - { - // skip this feed entry - logger.warn("Skip feed entry for user ("+feedUserId+"): " + je.getMessage()); - continue; - } - } + String siteId = feedEntry.getSiteNetwork(); + addSiteName(siteId, siteNames); + } + catch (JSONException je) + { + // skip this feed entry + logger.warn("Skip feed entry for user ("+feedUserId+"): " + je.getMessage()); + continue; + } + } - final int activityCount = modelBuilder.activityCount(); + final int activityCount = modelBuilder.activityCount(); if (activityCount > 0) - { - Map model = modelBuilder.buildModel(); - - model.put("siteTitles", siteNames); - model.put("repeatIntervalMins", repeatIntervalMins); - model.put("feedItemsMax", activityService.getMaxFeedItems()); + { + Map model = modelBuilder.buildModel(); + + model.put("siteTitles", siteNames); + model.put("repeatIntervalMins", repeatIntervalMins); + model.put("feedItemsMax", activityService.getMaxFeedItems()); - // add Share info to model - model.put(TemplateService.KEY_PRODUCT_NAME, ModelUtil.getProductName(repoAdminService)); + // add Share info to model + model.put(TemplateService.KEY_PRODUCT_NAME, ModelUtil.getProductName(repoAdminService)); - Map personPrefixProps = new HashMap(personProps.size()); - for (QName propQName : personProps.keySet()) - { - try - { - String propPrefix = propQName.toPrefixString(namespaceService); - personPrefixProps.put(propPrefix, personProps.get(propQName)); - } - catch (NamespaceException ne) - { - // ignore properties that do not have a registered namespace - logger.warn("Ignoring property '" + propQName + "' as it's namespace is not registered"); - } - } + Map personPrefixProps = new HashMap(personProps.size()); + for (QName propQName : personProps.keySet()) + { + try + { + String propPrefix = propQName.toPrefixString(namespaceService); + personPrefixProps.put(propPrefix, personProps.get(propQName)); + } + catch (NamespaceException ne) + { + // ignore properties that do not have a registered namespace + logger.warn("Ignoring property '" + propQName + "' as it's namespace is not registered"); + } + } - model.put("personProps", personPrefixProps); + model.put("personProps", personPrefixProps); - // send - notifyUser(personNodeRef, subject, subjectParams, model, templateNodeRef); + // send + notifyUser(personNodeRef, subject, subjectParams, model, templateNodeRef); - return new Pair(activityCount, modelBuilder.getMaxFeedId()); - } - } + return new Pair(activityCount, modelBuilder.getMaxFeedId()); + } + } - return null; - } + return null; + } } diff --git a/source/java/org/alfresco/repo/activities/feed/ActivitiesFeedModelBuilder.java b/source/java/org/alfresco/repo/activities/feed/ActivitiesFeedModelBuilder.java index 589297e280..fb48016fb3 100644 --- a/source/java/org/alfresco/repo/activities/feed/ActivitiesFeedModelBuilder.java +++ b/source/java/org/alfresco/repo/activities/feed/ActivitiesFeedModelBuilder.java @@ -33,7 +33,7 @@ public interface ActivitiesFeedModelBuilder Map buildModel(); - void addAcctivitiyFeedEntry(ActivityFeedEntity feedEntry) throws JSONException; + void addActivityFeedEntry(ActivityFeedEntity feedEntry) throws JSONException; int activityCount(); diff --git a/source/java/org/alfresco/repo/activities/feed/DefaultActivitiesFeedModelBuilder.java b/source/java/org/alfresco/repo/activities/feed/DefaultActivitiesFeedModelBuilder.java index bc143dcadc..9456688762 100644 --- a/source/java/org/alfresco/repo/activities/feed/DefaultActivitiesFeedModelBuilder.java +++ b/source/java/org/alfresco/repo/activities/feed/DefaultActivitiesFeedModelBuilder.java @@ -45,7 +45,7 @@ public class DefaultActivitiesFeedModelBuilder implements ActivitiesFeedModelBui } @Override - public void addAcctivitiyFeedEntry(ActivityFeedEntity feedEntry) throws JSONException + public void addActivityFeedEntry(ActivityFeedEntity feedEntry) throws JSONException { Map map; map = feedEntry.getModel(); @@ -56,7 +56,6 @@ public class DefaultActivitiesFeedModelBuilder implements ActivitiesFeedModelBui { maxFeedId = feedId; } - } @Override @@ -70,5 +69,4 @@ public class DefaultActivitiesFeedModelBuilder implements ActivitiesFeedModelBui { return maxFeedId; } - } diff --git a/source/test-java/org/alfresco/repo/activities/feed/FeedNotifierTest.java b/source/test-java/org/alfresco/repo/activities/feed/FeedNotifierTest.java index f73d77d171..4d07b5ca2a 100644 --- a/source/test-java/org/alfresco/repo/activities/feed/FeedNotifierTest.java +++ b/source/test-java/org/alfresco/repo/activities/feed/FeedNotifierTest.java @@ -230,7 +230,7 @@ public class FeedNotifierTest userNotifier.setActivityService(activityService); userNotifier.setRepoAdminService(repoAdminService); userNotifier.setActionService(actionService); - userNotifier.setActivitiesFeedModdelBuilderFactory(feedModelBuilderFactory); + userNotifier.setActivitiesFeedModelBuilderFactory(feedModelBuilderFactory); feedNotifier.setUserNotifier(userNotifier); }