diff --git a/library/src/morpheus-master/js/src/sakai.morpheus.bullhorns.js b/library/src/morpheus-master/js/src/sakai.morpheus.bullhorns.js
index 4f5d53c4bde5..59161b3b8bd6 100755
--- a/library/src/morpheus-master/js/src/sakai.morpheus.bullhorns.js
+++ b/library/src/morpheus-master/js/src/sakai.morpheus.bullhorns.js
@@ -188,7 +188,7 @@
var message = '';
- if (alert.event === 'annc.new') {
+ if (alert.event === 'annc.new' || alert.event === 'annc.revise.availability') {
message
= data.i18n.announcement.replace('{0}', title).replace('{1}', siteTitle);
} else if (alert.event === 'asn.new.assignment') {
diff --git a/portal/portal-api/api/pom.xml b/portal/portal-api/api/pom.xml
index 3b342c882277..cab2057f2d63 100644
--- a/portal/portal-api/api/pom.xml
+++ b/portal/portal-api/api/pom.xml
@@ -67,6 +67,10 @@
org.springframework
spring-context
+
+ org.springframework
+ spring-tx
+
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/api/BullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/api/BullhornHandler.java
index 46ffee36f6f1..6793f5980f2d 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/api/BullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/api/BullhornHandler.java
@@ -36,6 +36,6 @@
*/
public interface BullhornHandler {
- public String getHandledEvent();
+ public List getHandledEvents();
public Optional> handleEvent(Event e, Cache countCache);
}
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AddAssignmentBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AddAssignmentBullhornHandler.java
index 269c508c1ec6..b534c1cd7a42 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AddAssignmentBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AddAssignmentBullhornHandler.java
@@ -16,6 +16,7 @@
package org.sakaiproject.portal.beans.bullhornhandlers;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
@@ -56,8 +57,8 @@ public class AddAssignmentBullhornHandler extends AbstractBullhornHandler {
private SiteService siteService;
@Override
- public String getHandledEvent() {
- return AssignmentConstants.EVENT_ADD_ASSIGNMENT;
+ public List getHandledEvents() {
+ return Arrays.asList(AssignmentConstants.EVENT_ADD_ASSIGNMENT);
}
@Override
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AnnouncementsBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AnnouncementsBullhornHandler.java
index 0bebb70349db..706f199cf5d7 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AnnouncementsBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/AnnouncementsBullhornHandler.java
@@ -16,10 +16,12 @@
package org.sakaiproject.portal.beans.bullhornhandlers;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import javax.annotation.Resource;
import javax.inject.Inject;
import org.sakaiproject.announcement.api.AnnouncementMessage;
@@ -31,10 +33,18 @@
import org.sakaiproject.event.api.Event;
import org.sakaiproject.memory.api.Cache;
import org.sakaiproject.portal.api.BullhornData;
+import org.sakaiproject.portal.beans.BullhornAlert;
import org.sakaiproject.site.api.Site;
import org.sakaiproject.site.api.SiteService;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionCallbackWithoutResult;
+import org.springframework.transaction.support.TransactionTemplate;
+
+import org.hibernate.SessionFactory;
+import org.hibernate.criterion.Restrictions;
import lombok.extern.slf4j.Slf4j;
@@ -51,12 +61,18 @@ public class AnnouncementsBullhornHandler extends AbstractBullhornHandler {
@Inject
private ServerConfigurationService serverConfigurationService;
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
+ private SessionFactory sessionFactory;
+
@Inject
private SiteService siteService;
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalTransactionManager")
+ private PlatformTransactionManager transactionManager;
+
@Override
- public String getHandledEvent() {
- return AnnouncementService.SECURE_ANNC_ADD;
+ public List getHandledEvents() {
+ return Arrays.asList(AnnouncementService.SECURE_ANNC_ADD, AnnouncementService.EVENT_ANNC_UPDATE_AVAILABILITY);
}
@Override
@@ -69,13 +85,41 @@ public Optional> handleEvent(Event e, Cache coun
String siteId = pathParts[3];
- SecurityAdvisor sa = unlock(new String[] {AnnouncementService.SECURE_ANNC_READ});
+ SecurityAdvisor sa = unlock(new String[] {AnnouncementService.SECURE_ANNC_READ, AnnouncementService.SECURE_ANNC_READ_DRAFT});
try {
AnnouncementMessage message
= (AnnouncementMessage) announcementService.getMessage(
entityManager.newReference(ref));
- if (announcementService.isMessageViewable(message)) {
+ // If the announcement has just been hidden, remove any existing alerts for it
+ if (e.getEvent().equals(AnnouncementService.EVENT_ANNC_UPDATE_AVAILABILITY) && message.getHeader().getDraft()) {
+ try {
+ TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
+
+ transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+
+ protected void doInTransactionWithoutResult(TransactionStatus status) {
+
+ // Grab the alerts we'll be deleting. We'll need to clear the count caches
+ // for the recipients
+ final List alerts
+ = sessionFactory.getCurrentSession().createCriteria(BullhornAlert.class)
+ .add(Restrictions.eq("event", AnnouncementService.SECURE_ANNC_ADD))
+ .add(Restrictions.eq("ref", ref)).list();
+
+ alerts.forEach(a -> countCache.remove(a.getToUser()));
+
+ sessionFactory.getCurrentSession().createQuery("delete BullhornAlert where event = :event and ref = :ref")
+ .setString("event", AnnouncementService.SECURE_ANNC_ADD)
+ .setString("ref", ref).executeUpdate();
+ }
+ });
+ } catch (Exception e1) {
+ log.error("Failed to delete bullhorn add announcement event", e1);
+ }
+ }
+
+ if (!message.getHeader().getDraft() && announcementService.isMessageViewable(message)) {
Site site = siteService.getSite(siteId);
String toolId = site.getToolForCommonId("sakai.announcements").getId();
String url = serverConfigurationService.getPortalUrl() + "/directtool/" + toolId
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/CommonsCommentBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/CommonsCommentBullhornHandler.java
index a74f7b6890f6..20a52840e6fd 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/CommonsCommentBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/CommonsCommentBullhornHandler.java
@@ -16,6 +16,7 @@
package org.sakaiproject.portal.beans.bullhornhandlers;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -52,8 +53,8 @@ public class CommonsCommentBullhornHandler extends AbstractBullhornHandler {
private SiteService siteService;
@Override
- public String getHandledEvent() {
- return CommonsEvents.COMMENT_CREATED;
+ public List getHandledEvents() {
+ return Arrays.asList(CommonsEvents.COMMENT_CREATED);
}
@Override
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendConfirmBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendConfirmBullhornHandler.java
index aafa0cfceec6..9b68a5d3f0be 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendConfirmBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendConfirmBullhornHandler.java
@@ -15,13 +15,14 @@
*/
package org.sakaiproject.portal.beans.bullhornhandlers;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.Optional;
+import javax.annotation.Resource;
import javax.inject.Inject;
-import javax.inject.Named;
import org.sakaiproject.event.api.Event;
import org.sakaiproject.memory.api.Cache;
@@ -29,11 +30,13 @@
import org.sakaiproject.profile2.logic.ProfileLinkLogic;
import org.sakaiproject.profile2.util.ProfileConstants;
-import org.hibernate.Session;
import org.hibernate.SessionFactory;
-import org.hibernate.Transaction;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionCallbackWithoutResult;
+import org.springframework.transaction.support.TransactionTemplate;
import lombok.extern.slf4j.Slf4j;
@@ -44,12 +47,15 @@ public class FriendConfirmBullhornHandler extends AbstractBullhornHandler {
@Inject
private ProfileLinkLogic profileLinkLogic;
- @Inject @Named("org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
private SessionFactory sessionFactory;
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalTransactionManager")
+ private PlatformTransactionManager transactionManager;
+
@Override
- public String getHandledEvent() {
- return ProfileConstants.EVENT_FRIEND_CONFIRM;
+ public List getHandledEvents() {
+ return Arrays.asList(ProfileConstants.EVENT_FRIEND_CONFIRM);
}
public boolean isAcademic() {
@@ -65,18 +71,20 @@ public Optional> handleEvent(Event e, Cache coun
String[] pathParts = ref.split("/");
String to = pathParts[2];
- Session session = sessionFactory.openSession();
- Transaction tx = session.beginTransaction();
try {
- session.createQuery("delete BullhornAlert where event = :event and fromUser = :fromUser")
- .setString("event", ProfileConstants.EVENT_FRIEND_REQUEST)
- .setString("fromUser", to).executeUpdate();
- tx.commit();
+ TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
+
+ transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+
+ protected void doInTransactionWithoutResult(TransactionStatus status) {
+
+ sessionFactory.getCurrentSession().createQuery("delete BullhornAlert where event = :event and fromUser = :fromUser")
+ .setString("event", ProfileConstants.EVENT_FRIEND_REQUEST)
+ .setString("fromUser", to).executeUpdate();
+ }
+ });
} catch (Exception e1) {
log.error("Failed to delete bullhorn request event", e1);
- tx.rollback();
- } finally {
- session.close();
}
String url = profileLinkLogic.getInternalDirectUrlToUserConnections(to);
countCache.remove(to);
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendIgnoreBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendIgnoreBullhornHandler.java
index 60a7fbb3598f..faae5a45ce80 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendIgnoreBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendIgnoreBullhornHandler.java
@@ -15,23 +15,25 @@
*/
package org.sakaiproject.portal.beans.bullhornhandlers;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import javax.inject.Inject;
-import javax.inject.Named;
+import javax.annotation.Resource;
import org.sakaiproject.event.api.Event;
import org.sakaiproject.memory.api.Cache;
import org.sakaiproject.portal.api.BullhornData;
import org.sakaiproject.profile2.util.ProfileConstants;
-import org.hibernate.Session;
import org.hibernate.SessionFactory;
-import org.hibernate.Transaction;
import org.springframework.stereotype.Component;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.TransactionStatus;
+import org.springframework.transaction.support.TransactionCallbackWithoutResult;
+import org.springframework.transaction.support.TransactionTemplate;
import lombok.extern.slf4j.Slf4j;
@@ -39,12 +41,15 @@
@Component
public class FriendIgnoreBullhornHandler extends AbstractBullhornHandler {
- @Inject @Named("org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
private SessionFactory sessionFactory;
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalTransactionManager")
+ private PlatformTransactionManager transactionManager;
+
@Override
- public String getHandledEvent() {
- return ProfileConstants.EVENT_FRIEND_IGNORE;
+ public List getHandledEvents() {
+ return Arrays.asList(ProfileConstants.EVENT_FRIEND_IGNORE);
}
@Override
@@ -56,18 +61,20 @@ public Optional> handleEvent(Event e, Cache coun
String[] pathParts = ref.split("/");
String to = pathParts[2];
- Session session = sessionFactory.openSession();
- Transaction tx = session.beginTransaction();
try {
- session.createQuery("delete BullhornAlert where event = :event and fromUser = :fromUser")
- .setString("event", ProfileConstants.EVENT_FRIEND_REQUEST)
- .setString("fromUser", to).executeUpdate();
- tx.commit();
+ TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
+
+ transactionTemplate.execute(new TransactionCallbackWithoutResult() {
+
+ protected void doInTransactionWithoutResult(TransactionStatus status) {
+
+ sessionFactory.getCurrentSession().createQuery("delete BullhornAlert where event = :event and fromUser = :fromUser")
+ .setString("event", ProfileConstants.EVENT_FRIEND_REQUEST)
+ .setString("fromUser", to).executeUpdate();
+ }
+ });
} catch (Exception e1) {
log.error("Failed to delete bullhorn request event", e1);
- tx.rollback();
- } finally {
- session.close();
}
countCache.remove(from);
return Optional.empty();
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendMessageBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendMessageBullhornHandler.java
index fc6c955571b3..7a5638e50018 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendMessageBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendMessageBullhornHandler.java
@@ -15,6 +15,7 @@
*/
package org.sakaiproject.portal.beans.bullhornhandlers;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -46,8 +47,8 @@ public class FriendMessageBullhornHandler extends AbstractBullhornHandler {
private SiteService siteService;
@Override
- public String getHandledEvent() {
- return ProfileConstants.EVENT_MESSAGE_SENT;
+ public List getHandledEvents() {
+ return Arrays.asList(ProfileConstants.EVENT_MESSAGE_SENT);
}
@Override
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendRequestBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendRequestBullhornHandler.java
index a49e735e0e9d..2dab826b2051 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendRequestBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendRequestBullhornHandler.java
@@ -15,6 +15,7 @@
*/
package org.sakaiproject.portal.beans.bullhornhandlers;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -46,8 +47,8 @@ public class FriendRequestBullhornHandler extends AbstractBullhornHandler {
private SiteService siteService;
@Override
- public String getHandledEvent() {
- return ProfileConstants.EVENT_FRIEND_REQUEST;
+ public List getHandledEvents() {
+ return Arrays.asList(ProfileConstants.EVENT_FRIEND_REQUEST);
}
public boolean isAcademic() {
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendStatusBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendStatusBullhornHandler.java
index 4f9d0ef72e8d..e2c7c9744569 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendStatusBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/FriendStatusBullhornHandler.java
@@ -16,6 +16,7 @@
package org.sakaiproject.portal.beans.bullhornhandlers;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -45,8 +46,8 @@ public class FriendStatusBullhornHandler extends AbstractBullhornHandler {
private ProfileLinkLogic profileLinkLogic;
@Override
- public String getHandledEvent() {
- return ProfileConstants.EVENT_STATUS_UPDATE;
+ public List getHandledEvents() {
+ return Arrays.asList(ProfileConstants.EVENT_STATUS_UPDATE);
}
@Override
diff --git a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/GradeAssignmentBullhornHandler.java b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/GradeAssignmentBullhornHandler.java
index 5c67ecf6556c..0f5feb237992 100644
--- a/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/GradeAssignmentBullhornHandler.java
+++ b/portal/portal-api/api/src/java/org/sakaiproject/portal/beans/bullhornhandlers/GradeAssignmentBullhornHandler.java
@@ -16,6 +16,7 @@
package org.sakaiproject.portal.beans.bullhornhandlers;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -44,8 +45,8 @@ public class GradeAssignmentBullhornHandler extends AbstractBullhornHandler {
private AssignmentService assignmentService;
@Override
- public String getHandledEvent() {
- return AssignmentConstants.EVENT_GRADE_ASSIGNMENT_SUBMISSION;
+ public List getHandledEvents() {
+ return Arrays.asList(AssignmentConstants.EVENT_GRADE_ASSIGNMENT_SUBMISSION);
}
@Override
diff --git a/portal/portal-service-impl/impl/pom.xml b/portal/portal-service-impl/impl/pom.xml
index e3808fa77649..5cb0a5f07914 100644
--- a/portal/portal-service-impl/impl/pom.xml
+++ b/portal/portal-service-impl/impl/pom.xml
@@ -84,6 +84,10 @@
org.springframework
spring-tx
+
+
+ org.springframework
+ spring-context
diff --git a/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/BullhornServiceImpl.java b/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/BullhornServiceImpl.java
index 33914ce09326..c2a6d5e45e9c 100644
--- a/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/BullhornServiceImpl.java
+++ b/portal/portal-service-impl/impl/src/java/org/sakaiproject/portal/service/BullhornServiceImpl.java
@@ -27,8 +27,8 @@
import java.util.Optional;
import java.util.stream.Collectors;
+import javax.annotation.Resource;
import javax.inject.Inject;
-import javax.inject.Named;
import org.apache.commons.lang3.StringUtils;
import org.hibernate.SessionFactory;
@@ -55,12 +55,12 @@
import org.sakaiproject.user.api.UserNotDefinedException;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
import org.springframework.transaction.support.TransactionTemplate;
-
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
@@ -73,27 +73,27 @@ public class BullhornServiceImpl implements BullhornService, Observer {
private EventTrackingService eventTrackingService;
@Inject
private MemoryService memoryService;
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalTransactionManager")
+ private PlatformTransactionManager transactionManager;
@Inject
private UserDirectoryService userDirectoryService;
@Inject
private SecurityService securityService;
@Inject
private ServerConfigurationService serverConfigurationService;
- @Inject @Named("org.sakaiproject.lessonbuildertool.model.SimplePageToolDao")
+ @Resource(name = "org.sakaiproject.lessonbuildertool.model.SimplePageToolDao")
private SimplePageToolDao simplePageToolDao;
@Inject
private SiteService siteService;
- @Inject @Named("org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
+ @Resource(name = "org.sakaiproject.springframework.orm.hibernate.GlobalSessionFactory")
private SessionFactory sessionFactory;
- @Setter
- private TransactionTemplate transactionTemplate;
private Cache countCache = null;
@Autowired
private List handlers;
- private Map handlerMap;
+ private Map handlerMap = new HashMap<>();
public void init() {
@@ -101,8 +101,12 @@ public void init() {
HANDLED_EVENTS.add(LessonBuilderEvents.COMMENT_CREATE);
HANDLED_EVENTS.add(SiteService.EVENT_SITE_PUBLISH);
- HANDLED_EVENTS.addAll(handlers.stream().map(h -> h.getHandledEvent()).collect(Collectors.toList()));
- handlerMap = handlers.stream().collect(Collectors.toMap(BullhornHandler::getHandledEvent, Function.identity()));
+ handlers.forEach(h -> {
+ h.getHandledEvents().forEach(he -> {
+ HANDLED_EVENTS.add(he);
+ handlerMap.put(he, h);
+ });
+ });
eventTrackingService.addLocalObserver(this);
}
@@ -129,7 +133,6 @@ public void update(Observable o, final Object arg) {
if (handler != null ) {
Optional> result = handler.handleEvent(e, countCache);
if (result.isPresent()) {
- result.get().forEach(bd -> System.out.println(bd.getTo() + " : " + bd.getTitle()));
result.get().forEach(bd -> {
if (bd.isSocial()) {
@@ -186,6 +189,8 @@ public void update(Observable o, final Object arg) {
} else if (SiteService.EVENT_SITE_PUBLISH.equals(event)) {
final String siteId = pathParts[2];
+ TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
+
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
@@ -213,6 +218,8 @@ protected void doInTransactionWithoutResult(TransactionStatus status) {
private void doAcademicInsert(String from, String to, String event, String ref
, String title, String siteId, Date eventDate, String url) {
+ TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
+
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
@@ -240,6 +247,8 @@ protected void doInTransactionWithoutResult(TransactionStatus status) {
private void doSocialInsert(String from, String to, String event, String ref, Date eventDate, String url) {
+ TransactionTemplate transactionTemplate = new TransactionTemplate(transactionManager);
+
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
diff --git a/portal/portal-service-impl/impl/src/webapp/WEB-INF/components.xml b/portal/portal-service-impl/impl/src/webapp/WEB-INF/components.xml
index 181852b7300d..727de8ecd157 100644
--- a/portal/portal-service-impl/impl/src/webapp/WEB-INF/components.xml
+++ b/portal/portal-service-impl/impl/src/webapp/WEB-INF/components.xml
@@ -63,11 +63,6 @@
-
-
-
-
-