From 31426f765a1d70a7560e0270be3d1031de373d4a Mon Sep 17 00:00:00 2001 From: Will Abson Date: Tue, 1 Jul 2014 15:09:44 +0000 Subject: [PATCH] Merged HEAD-BUG-FIX (5.0/Cloud) to HEAD (5.0/Cloud) 75028: Merged WAT2 (5.0/Cloud) to HEAD-BUG-FIX (5.0/Cloud) 71712: Added BrowserEvent to the EventPublisher interface git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@75356 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../alfresco/repo/events/EventPublisher.java | 13 +++++++++++++ .../repo/events/NoOpEventPublisher.java | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/source/java/org/alfresco/repo/events/EventPublisher.java b/source/java/org/alfresco/repo/events/EventPublisher.java index e25e76344e..ec76ddf5fd 100644 --- a/source/java/org/alfresco/repo/events/EventPublisher.java +++ b/source/java/org/alfresco/repo/events/EventPublisher.java @@ -18,7 +18,9 @@ */ package org.alfresco.repo.events; +import org.alfresco.events.types.BrowserEvent; import org.alfresco.events.types.Event; +import org.springframework.extensions.webscripts.WebScriptRequest; /** * EventPublisher can be used to broadcast events. @@ -36,6 +38,17 @@ public interface EventPublisher */ public void publishEvent(Event event); + /** + * A special type of Event that occurs in a web browser + * @see BrowserEvent + * @param req - WebScriptRequest + * @param siteId - optional site id + * @param component - page eg. "documentdetails" + * @param action - eg. "view" + * @param attributes - optional additional attributes as a json map eg. {"liked":"true"} + */ + public void publishBrowserEvent(WebScriptRequest req, String siteId, String component, String action, String attributes); + /** * Publish the event using an EventPreparator * @param prep EventPreparator diff --git a/source/java/org/alfresco/repo/events/NoOpEventPublisher.java b/source/java/org/alfresco/repo/events/NoOpEventPublisher.java index 1ed70f6420..5b9e19ecbc 100644 --- a/source/java/org/alfresco/repo/events/NoOpEventPublisher.java +++ b/source/java/org/alfresco/repo/events/NoOpEventPublisher.java @@ -18,9 +18,14 @@ */ package org.alfresco.repo.events; +import org.alfresco.events.types.BrowserEvent; import org.alfresco.events.types.Event; +import org.alfresco.repo.security.authentication.AuthenticationUtil; +import org.alfresco.repo.tenant.TenantUtil; +import org.alfresco.repo.transaction.AlfrescoTransactionSupport; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.extensions.webscripts.WebScriptRequest; /** * An implementation of EventPublisher that does nothing. @@ -49,5 +54,18 @@ public class NoOpEventPublisher implements EventPublisher { logger.debug("No event published with preparator."); } } + + @Override + public void publishBrowserEvent(final WebScriptRequest req, final String siteId, final String component, final String action, final String attributes) + { + publishEvent(new EventPreparator(){ + @Override + public Event prepareEvent(String user, String networkId, String transactionId) + { + String agent = req.getHeader("user-agent"); + return new BrowserEvent(user, networkId, transactionId, siteId, component, action, agent, attributes); + } + }); + } } \ No newline at end of file