Commit c72b0417 authored by Liang Ding's avatar Liang Ding

重构事件处理

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