Skip to content
Snippets Groups Projects
Commit d07b682b authored by srosse's avatar srosse
Browse files

OO-89: create the publisher for e-mails notifications at start of OpenOLAT

parent 69a6b3e0
No related branches found
No related tags found
No related merge requests found
......@@ -54,7 +54,7 @@
<property name="order" value="780" />
</bean>
<bean id="mailManager" class="org.olat.core.util.mail.manager.MailManager">
<bean id="mailManager" class="org.olat.core.util.mail.manager.MailManager" init-method="init">
<constructor-arg index="0" ref="mailModule" />
<property name="dbInstance" ref="database"/>
<property name="notificationsManager" ref="org.olat.core.util.notifications.NotificationsManager"/>
......
......@@ -120,6 +120,15 @@ public class MailManager extends BasicManager {
this.notificationsManager = notificationsManager;
}
/**
* [used by Spring]
*/
public void init() {
PublisherData pdata = getPublisherData();
SubscriptionContext scontext = getSubscriptionContext();
notificationsManager.getOrCreatePublisher(scontext, pdata);
}
public SubscriptionContext getSubscriptionContext() {
return new SubscriptionContext("Inbox", 0l, "");
}
......
......@@ -97,11 +97,20 @@ public abstract class NotificationsManager extends BasicManager {
public abstract Subscriber getSubscriber(Long key);
/**
* Get the publisher or return null if not exists
* @param subsContext
* @return the publisher belonging to the given context or null
*/
public abstract Publisher getPublisher(SubscriptionContext subsContext);
/**
* Get or create the publisher
* @param scontext
* @param pdata
* @return
*/
public abstract Publisher getOrCreatePublisher(final SubscriptionContext scontext, final PublisherData pdata);
public abstract List<Publisher> getAllPublisher();
/**
......
......@@ -531,7 +531,7 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us
* @param pdata
* @return the publisher
*/
private Publisher findOrCreatePublisher(final SubscriptionContext scontext, final PublisherData pdata) {
public Publisher getOrCreatePublisher(final SubscriptionContext scontext, final PublisherData pdata) {
final OLATResourceable ores = OresHelper.createOLATResourceableInstance(scontext.getResName() + "_" + scontext.getSubidentifier(),scontext.getResId());
//o_clusterOK by:cg
//fxdiff VCRP-16:prevent nested doInSync
......@@ -758,7 +758,7 @@ public class NotificationsManagerImpl extends NotificationsManager implements Us
*/
public void subscribe(Identity identity, SubscriptionContext subscriptionContext, PublisherData publisherData) {
// no need to sync, since an identity only has one gui thread / one mouse
Publisher p = findOrCreatePublisher(subscriptionContext, publisherData);
Publisher p = getOrCreatePublisher(subscriptionContext, publisherData);
Subscriber s = getSubscriber(identity, p);
if (s == null) {
// no subscriber -> create.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment