Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud)

82493: Merged WAT2 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud)
      82483: An event is published when a file/folder is added using the FavouriteService


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@83290 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Erik Winlof
2014-09-04 07:34:51 +00:00
parent 378f6f428f
commit 023e275bc3
2 changed files with 40 additions and 1 deletions

View File

@@ -45,5 +45,6 @@
<property name="personService" ref="PersonService"/>
<property name="permissionService" ref="PermissionService"/>
<property name="authenticationContext" ref="authenticationContext"/>
<property name="eventPublisher" ref="eventPublisher" />
</bean>
</beans>

View File

@@ -15,10 +15,16 @@ import java.util.StringTokenizer;
import java.util.TreeMap;
import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.events.types.ActivityEvent;
import org.alfresco.events.types.Event;
import org.alfresco.model.ContentModel;
import org.alfresco.query.PageDetails;
import org.alfresco.query.PagingRequest;
import org.alfresco.query.PagingResults;
import org.alfresco.repo.Client;
import org.alfresco.repo.Client.ClientType;
import org.alfresco.repo.events.EventPreparator;
import org.alfresco.repo.events.EventPublisher;
import org.alfresco.repo.favourites.PersonFavourite.PersonFavouriteKey;
import org.alfresco.repo.policy.ClassPolicy;
import org.alfresco.repo.policy.ClassPolicyDelegate;
@@ -65,6 +71,7 @@ public class FavouritesServiceImpl implements FavouritesService, InitializingBea
private PolicyComponent policyComponent;
private PermissionService permissionService;
private PersonService personService;
private EventPublisher eventPublisher;
/** Authentication Service */
private AuthenticationContext authenticationContext;
@@ -645,12 +652,25 @@ public class FavouritesServiceImpl implements FavouritesService, InitializingBea
if(personFavourite == null)
{
Date createdAt = new Date();
String name = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
final String name = (String)nodeService.getProperty(nodeRef, ContentModel.PROP_NAME);
personFavourite = new PersonFavourite(userName, nodeRef, type, name, createdAt);
personFavourites.put(personFavourite.getKey(), personFavourite);
updateFavouriteNodes(userName, type, personFavourites);
QName nodeClass = nodeService.getType(nodeRef);
final String finalRef = nodeRef.getId();
final QName nodeType = nodeClass;
eventPublisher.publishEvent(new EventPreparator(){
@Override
public Event prepareEvent(String user, String networkId, String transactionId)
{
return new ActivityEvent("favorite.added", transactionId, networkId, user, finalRef,
null, nodeType==null?null:nodeType.toString(), Client.asType(ClientType.script), null,
name, null, 0l, null);
}
});
OnAddFavouritePolicy policy = onAddFavouriteDelegate.get(nodeRef, nodeClass);
policy.onAddFavourite(userName, nodeRef);
}
@@ -709,6 +729,19 @@ public class FavouritesServiceImpl implements FavouritesService, InitializingBea
updateFavouriteNodes(userName, type, personFavourites);
QName nodeClass = nodeService.getType(nodeRef);
final String finalRef = nodeRef.getId();
final QName nodeType = nodeClass;
eventPublisher.publishEvent(new EventPreparator(){
@Override
public Event prepareEvent(String user, String networkId, String transactionId)
{
return new ActivityEvent("favorite.removed", transactionId, networkId, user, finalRef,
null, nodeType==null?null:nodeType.toString(), Client.asType(ClientType.script), null,
null, null, 0l, null);
}
});
OnRemoveFavouritePolicy policy = onRemoveFavouriteDelegate.get(nodeRef, nodeClass);
policy.onRemoveFavourite(userName, nodeRef);
@@ -921,4 +954,9 @@ public class FavouritesServiceImpl implements FavouritesService, InitializingBea
Type type = getType(nodeRef);
return getPersonFavourite(userName, type, nodeRef);
}
public void setEventPublisher(EventPublisher eventPublisher)
{
this.eventPublisher = eventPublisher;
}
}