Commit c72b0417 authored by Liang Ding's avatar Liang Ding

重构事件处理

parent bcf7e498
......@@ -62,7 +62,7 @@ import java.util.concurrent.locks.ReentrantLock;
* Solo Servlet listener.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.9.3.38, Sep 24, 2018
* @version 1.9.3.39, Sep 25, 2018
* @since 0.3.1
*/
public final class SoloServletListener extends AbstractServletListener {
......@@ -90,7 +90,7 @@ public final class SoloServletListener extends AbstractServletListener {
@Override
public void contextInitialized(final ServletContextEvent servletContextEvent) {
Latkes.USER_AGENT = Solos.USER_AGENT;
Latkes.setScanPath("org.b3log.solo"); // For Latke IoC
Latkes.setScanPath("org.b3log.solo");
super.contextInitialized(servletContextEvent);
Stopwatchs.start("Context Initialized");
......@@ -238,17 +238,23 @@ public final class SoloServletListener extends AbstractServletListener {
final EventManager eventManager = beanManager.getReference(EventManager.class);
// Comment
eventManager.registerListener(new ArticleCommentReplyNotifier());
eventManager.registerListener(new PageCommentReplyNotifier());
final ArticleCommentReplyNotifier articleCommentReplyNotifier = beanManager.getReference(ArticleCommentReplyNotifier.class);
eventManager.registerListener(articleCommentReplyNotifier);
final PageCommentReplyNotifier pageCommentReplyNotifier = beanManager.getReference(PageCommentReplyNotifier.class);
eventManager.registerListener(pageCommentReplyNotifier);
// Plugin
eventManager.registerListener(new PluginRefresher());
final PluginRefresher pluginRefresher = beanManager.getReference(PluginRefresher.class);
eventManager.registerListener(pluginRefresher);
eventManager.registerListener(new ViewLoadEventHandler());
// Sync
eventManager.registerListener(new ArticleSender());
eventManager.registerListener(new ArticleUpdater());
eventManager.registerListener(new CommentSender());
// B3log Sync
final ArticleSender articleSender = beanManager.getReference(ArticleSender.class);
eventManager.registerListener(articleSender);
final ArticleUpdater articleUpdater = beanManager.getReference(ArticleUpdater.class);
eventManager.registerListener(articleUpdater);
final CommentSender commentSender = beanManager.getReference(CommentSender.class);
eventManager.registerListener(commentSender);
} catch (final Exception e) {
LOGGER.log(Level.ERROR, "Register event handlers error", e);
throw new IllegalStateException(e);
......
......@@ -245,7 +245,7 @@ public class CommentReceiver {
eventData.put(Comment.COMMENT, comment);
eventData.put(Article.ARTICLE, article);
eventManager.fireEventSynchronously(new Event<JSONObject>(EventTypes.ADD_COMMENT_TO_ARTICLE_FROM_SYMPHONY, eventData));
eventManager.fireEventSynchronously(new Event<>(EventTypes.ADD_COMMENT_TO_ARTICLE_FROM_SYMPHONY, eventData));
transaction.commit();
ret.put(Keys.STATUS_CODE, true);
......
......@@ -24,6 +24,8 @@ import org.b3log.latke.event.AbstractEventListener;
import org.b3log.latke.event.Event;
import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.Lifecycle;
import org.b3log.latke.ioc.inject.Named;
import org.b3log.latke.ioc.inject.Singleton;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.mail.MailService;
......@@ -45,10 +47,12 @@ import org.json.JSONObject;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="http://www.wanglay.com">Lei Wang</a>
* @version 1.2.2.10, Aug 2, 2018
* @version 1.2.2.11, Sep 25, 2018
* @since 0.3.1
*/
public final class ArticleCommentReplyNotifier extends AbstractEventListener<JSONObject> {
@Named
@Singleton
public class ArticleCommentReplyNotifier extends AbstractEventListener<JSONObject> {
/**
* Logger.
......
......@@ -25,6 +25,8 @@ import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException;
import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.Lifecycle;
import org.b3log.latke.ioc.inject.Named;
import org.b3log.latke.ioc.inject.Singleton;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.mail.MailService;
......@@ -45,10 +47,12 @@ import org.json.JSONObject;
* This listener is responsible for processing page comment reply.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.2.5, Apr 15, 2018
* @version 1.0.2.6, Sep 25, 2018
* @since 0.3.1
*/
public final class PageCommentReplyNotifier extends AbstractEventListener<JSONObject> {
@Named
@Singleton
public class PageCommentReplyNotifier extends AbstractEventListener<JSONObject> {
/**
* Logger.
......@@ -61,7 +65,7 @@ public final class PageCommentReplyNotifier extends AbstractEventListener<JSONOb
private MailService mailService = MailServiceFactory.getMailService();
@Override
public void action(final Event<JSONObject> event) throws EventException {
public void action(final Event<JSONObject> event) {
final JSONObject eventData = event.getData();
final JSONObject comment = eventData.optJSONObject(Comment.COMMENT);
final JSONObject page = eventData.optJSONObject(Page.PAGE);
......@@ -136,8 +140,6 @@ public final class PageCommentReplyNotifier extends AbstractEventListener<JSONOb
mailService.send(message);
} catch (final Exception e) {
LOGGER.log(Level.ERROR, e.getMessage(), e);
throw new EventException("Reply notifier error!");
}
}
......
......@@ -19,9 +19,10 @@ package org.b3log.solo.event.plugin;
import org.b3log.latke.event.AbstractEventListener;
import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException;
import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.Lifecycle;
import org.b3log.latke.ioc.inject.Named;
import org.b3log.latke.ioc.inject.Singleton;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.plugin.AbstractPlugin;
......@@ -37,10 +38,12 @@ import java.util.List;
* This listener is responsible for refreshing plugin after every loaded.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.1, Nov 28, 2011
* @version 1.0.0.2, Sep 25, 2018
* @since 0.3.1
*/
public final class PluginRefresher extends AbstractEventListener<List<AbstractPlugin>> {
@Named
@Singleton
public class PluginRefresher extends AbstractEventListener<List<AbstractPlugin>> {
/**
* Logger.
......@@ -48,7 +51,7 @@ public final class PluginRefresher extends AbstractEventListener<List<AbstractPl
private static final Logger LOGGER = Logger.getLogger(PluginRefresher.class);
@Override
public void action(final Event<List<AbstractPlugin>> event) throws EventException {
public void action(final Event<List<AbstractPlugin>> event) {
final List<AbstractPlugin> plugins = event.getData();
LOGGER.log(Level.DEBUG, "Processing an event[type={0}, data={1}] in listener[className={2}]",
......@@ -67,8 +70,7 @@ public final class PluginRefresher extends AbstractEventListener<List<AbstractPl
transaction.rollback();
}
LOGGER.log(Level.ERROR, "Processing plugin loaded event error", e);
throw new EventException(e);
LOGGER.log(Level.ERROR, "Process plugin loaded event error", e);
}
}
......
......@@ -26,6 +26,8 @@ import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException;
import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.Lifecycle;
import org.b3log.latke.ioc.inject.Named;
import org.b3log.latke.ioc.inject.Singleton;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.model.User;
......@@ -40,8 +42,6 @@ import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.util.Solos;
import org.json.JSONObject;
import java.util.Date;
/**
* This listener is responsible for sending article to B3log Rhythm.
* <p>
......@@ -50,10 +50,12 @@ import java.util.Date;
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author ArmstrongCN
* @version 1.0.2.14, Sep 16, 2018
* @version 1.0.2.15, Sep 25, 2018
* @since 0.3.1
*/
public final class ArticleSender extends AbstractEventListener<JSONObject> {
@Named
@Singleton
public class ArticleSender extends AbstractEventListener<JSONObject> {
/**
* Logger.
......
......@@ -26,6 +26,8 @@ import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException;
import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.Lifecycle;
import org.b3log.latke.ioc.inject.Named;
import org.b3log.latke.ioc.inject.Singleton;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.model.User;
......@@ -47,10 +49,12 @@ import org.json.JSONObject;
* </p>
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.4, Sep 16, 2018
* @version 1.0.1.5, Sep 25, 2018
* @since 0.6.0
*/
public final class ArticleUpdater extends AbstractEventListener<JSONObject> {
@Named
@Singleton
public class ArticleUpdater extends AbstractEventListener<JSONObject> {
/**
* Logger.
......
......@@ -25,6 +25,8 @@ import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException;
import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.Lifecycle;
import org.b3log.latke.ioc.inject.Named;
import org.b3log.latke.ioc.inject.Singleton;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.util.Strings;
......@@ -41,10 +43,12 @@ import org.json.JSONObject;
* This listener is responsible for sending comment to B3log Symphony.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.1.2, Aug 2, 2018
* @version 1.0.1.3, Sep 25, 2018
* @since 0.5.5
*/
public final class CommentSender extends AbstractEventListener<JSONObject> {
@Named
@Singleton
public class CommentSender extends AbstractEventListener<JSONObject> {
/**
* Logger.
......
......@@ -631,7 +631,7 @@ public class Filler {
data.setViewName("footer.ftl");
data.setDataModel(dataModel);
eventManager.fireEventSynchronously(new Event<ViewLoadEventData>(Keys.FREEMARKER_ACTION, data));
eventManager.fireEventSynchronously(new Event<>(Keys.FREEMARKER_ACTION, data));
if (StringUtils.isBlank((String) dataModel.get(Plugin.PLUGINS))) {
// There is no plugin for this template, fill ${plugins} with blank.
dataModel.put(Plugin.PLUGINS, "");
......
......@@ -480,7 +480,7 @@ public class CommentMgmtService {
eventData.put(Comment.COMMENT, comment);
eventData.put(Page.PAGE, page);
eventManager.fireEventSynchronously(new Event<JSONObject>(EventTypes.ADD_COMMENT_TO_PAGE, eventData));
eventManager.fireEventSynchronously(new Event<>(EventTypes.ADD_COMMENT_TO_PAGE, eventData));
transaction.commit();
} catch (final Exception e) {
......@@ -618,7 +618,7 @@ public class CommentMgmtService {
eventData.put(Comment.COMMENT, comment);
eventData.put(Article.ARTICLE, article);
eventManager.fireEventSynchronously(new Event<JSONObject>(EventTypes.ADD_COMMENT_TO_ARTICLE, eventData));
eventManager.fireEventSynchronously(new Event<>(EventTypes.ADD_COMMENT_TO_ARTICLE, eventData));
transaction.commit();
} catch (final Exception e) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment