Commit 20442f39 authored by Liang Ding's avatar Liang Ding

#268

改造了一个点,底层依赖是 ArchiveDateArticleRepositoryImpl
parent 5418521c
...@@ -19,6 +19,7 @@ package org.b3log.solo.api.metaweblog; ...@@ -19,6 +19,7 @@ package org.b3log.solo.api.metaweblog;
import java.text.ParseException; import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import javax.inject.Inject;
import javax.servlet.ServletInputStream; import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -98,12 +99,14 @@ public final class MetaWeblogAPI { ...@@ -98,12 +99,14 @@ public final class MetaWeblogAPI {
/** /**
* Article query service. * Article query service.
*/ */
private ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); @Inject
private ArticleQueryService articleQueryService;
/** /**
* Article management service. * Article management service.
*/ */
private ArticleMgmtService articleMgmtService = ArticleMgmtService.getInstance(); @Inject
private ArticleMgmtService articleMgmtService;
/** /**
* Article repository. * Article repository.
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package org.b3log.solo.api.symphony; package org.b3log.solo.api.symphony;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -64,12 +65,14 @@ public final class ArticleReceiver { ...@@ -64,12 +65,14 @@ public final class ArticleReceiver {
/** /**
* Article management service. * Article management service.
*/ */
private ArticleMgmtService articleMgmtService = ArticleMgmtService.getInstance(); @Inject
private ArticleMgmtService articleMgmtService;
/** /**
* Article query service. * Article query service.
*/ */
private ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); @Inject
private ArticleQueryService articleQueryService;
/** /**
* Article abstract length. * Article abstract length.
......
...@@ -18,6 +18,7 @@ package org.b3log.solo.dev; ...@@ -18,6 +18,7 @@ package org.b3log.solo.dev;
import java.io.IOException; import java.io.IOException;
import java.util.Date; import java.util.Date;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.time.DateUtils; import org.apache.commons.lang.time.DateUtils;
...@@ -52,6 +53,12 @@ public final class ArticleGenerator { ...@@ -52,6 +53,12 @@ public final class ArticleGenerator {
*/ */
private static final Logger LOGGER = Logger.getLogger(ArticleGenerator.class.getName()); private static final Logger LOGGER = Logger.getLogger(ArticleGenerator.class.getName());
/**
* Article management service.
*/
@Inject
private ArticleMgmtService articleMgmtService;
/** /**
* Generates some dummy articles with the specified context. * Generates some dummy articles with the specified context.
* *
...@@ -77,7 +84,6 @@ public final class ArticleGenerator { ...@@ -77,7 +84,6 @@ public final class ArticleGenerator {
final int num = Integer.valueOf(requestURI.substring((Latkes.getContextPath() + "/dev/articles/gen/").length())); final int num = Integer.valueOf(requestURI.substring((Latkes.getContextPath() + "/dev/articles/gen/").length()));
try { try {
final ArticleMgmtService articleMgmtService = ArticleMgmtService.getInstance();
final UserQueryService userQueryService = UserQueryService.getInstance(); final UserQueryService userQueryService = UserQueryService.getInstance();
final JSONObject admin = userQueryService.getAdmin(); final JSONObject admin = userQueryService.getAdmin();
final String authorEmail = admin.optString(User.USER_EMAIL); final String authorEmail = admin.optString(User.USER_EMAIL);
......
...@@ -20,6 +20,7 @@ import java.io.IOException; ...@@ -20,6 +20,7 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.*; import java.util.*;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
...@@ -82,7 +83,8 @@ public final class ArticleProcessor { ...@@ -82,7 +83,8 @@ public final class ArticleProcessor {
/** /**
* Article query service. * Article query service.
*/ */
private ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); @Inject
private ArticleQueryService articleQueryService;
/** /**
* Tag query service. * Tag query service.
...@@ -97,7 +99,8 @@ public final class ArticleProcessor { ...@@ -97,7 +99,8 @@ public final class ArticleProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Language service. * Language service.
...@@ -124,6 +127,12 @@ public final class ArticleProcessor { ...@@ -124,6 +127,12 @@ public final class ArticleProcessor {
*/ */
private UserQueryService userQueryService = UserQueryService.getInstance(); private UserQueryService userQueryService = UserQueryService.getInstance();
/**
* Article management service.
*/
@Inject
private ArticleMgmtService articleMgmtService;
/** /**
* Shows the article view password form. * Shows the article view password form.
* *
...@@ -949,7 +958,7 @@ public final class ArticleProcessor { ...@@ -949,7 +958,7 @@ public final class ArticleProcessor {
dataModel); dataModel);
if (!Requests.hasBeenServed(request, response)) { if (!Requests.hasBeenServed(request, response)) {
ArticleMgmtService.getInstance().incViewCount(articleId); articleMgmtService.incViewCount(articleId);
} }
} catch (final Exception e) { } catch (final Exception e) {
LOGGER.log(Level.ERROR, e.getMessage(), e); LOGGER.log(Level.ERROR, e.getMessage(), e);
......
...@@ -19,6 +19,7 @@ package org.b3log.solo.processor; ...@@ -19,6 +19,7 @@ package org.b3log.solo.processor;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -57,7 +58,8 @@ public final class ErrorProcessor { ...@@ -57,7 +58,8 @@ public final class ErrorProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Preference query service. * Preference query service.
......
...@@ -21,6 +21,7 @@ import java.io.IOException; ...@@ -21,6 +21,7 @@ import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -70,7 +71,8 @@ public final class IndexProcessor { ...@@ -70,7 +71,8 @@ public final class IndexProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Preference query service. * Preference query service.
......
...@@ -19,6 +19,7 @@ package org.b3log.solo.processor; ...@@ -19,6 +19,7 @@ package org.b3log.solo.processor;
import java.util.Calendar; import java.util.Calendar;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -65,12 +66,14 @@ public final class InitProcessor { ...@@ -65,12 +66,14 @@ public final class InitProcessor {
/** /**
* Initialization service. * Initialization service.
*/ */
private InitService initService = InitService.getInstance(); @Inject
private InitService initService;
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Language service. * Language service.
......
...@@ -19,6 +19,7 @@ package org.b3log.solo.processor; ...@@ -19,6 +19,7 @@ package org.b3log.solo.processor;
import java.io.IOException; import java.io.IOException;
import java.util.Calendar; import java.util.Calendar;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.Cookie; import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
...@@ -103,7 +104,8 @@ public final class LoginProcessor { ...@@ -103,7 +104,8 @@ public final class LoginProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Preference query service. * Preference query service.
...@@ -375,7 +377,8 @@ public final class LoginProcessor { ...@@ -375,7 +377,8 @@ public final class LoginProcessor {
* @throws ServiceException the ServiceException * @throws ServiceException the ServiceException
* @throws IOException the IOException * @throws IOException the IOException
*/ */
private void sendRandomPwd(final JSONObject user, final String userEmail, final JSONObject jsonObject) throws JSONException, ServiceException, IOException { private void sendRandomPwd(final JSONObject user, final String userEmail, final JSONObject jsonObject) throws JSONException,
ServiceException, IOException {
final JSONObject preference = preferenceQueryService.getPreference(); final JSONObject preference = preferenceQueryService.getPreference();
final String randomPwd = new Randoms().nextString(); final String randomPwd = new Randoms().nextString();
final String blogTitle = preference.getString(Preference.BLOG_TITLE); final String blogTitle = preference.getString(Preference.BLOG_TITLE);
...@@ -411,7 +414,8 @@ public final class LoginProcessor { ...@@ -411,7 +414,8 @@ public final class LoginProcessor {
* @throws JSONException the JSONException * @throws JSONException the JSONException
* @throws ServiceException the ServiceException * @throws ServiceException the ServiceException
*/ */
private void renderPage(final HTTPRequestContext context, final String pageTemplate, final String destinationURL) throws JSONException, ServiceException { private void renderPage(final HTTPRequestContext context, final String pageTemplate, final String destinationURL) throws JSONException,
ServiceException {
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(); final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
renderer.setTemplateName(pageTemplate); renderer.setTemplateName(pageTemplate);
......
...@@ -19,6 +19,7 @@ package org.b3log.solo.processor; ...@@ -19,6 +19,7 @@ package org.b3log.solo.processor;
import java.io.IOException; import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -70,7 +71,8 @@ public final class PageProcessor { ...@@ -70,7 +71,8 @@ public final class PageProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Preference query service. * Preference query service.
......
...@@ -20,11 +20,13 @@ import java.io.IOException; ...@@ -20,11 +20,13 @@ import java.io.IOException;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.cache.PageCaches; import org.b3log.latke.cache.PageCaches;
import org.b3log.latke.ioc.LatkeBeanManager;
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;
...@@ -78,6 +80,12 @@ public final class RepairProcessor { ...@@ -78,6 +80,12 @@ public final class RepairProcessor {
*/ */
private static final Logger LOGGER = Logger.getLogger(RepairProcessor.class.getName()); private static final Logger LOGGER = Logger.getLogger(RepairProcessor.class.getName());
/**
* Bean manager.
*/
@Inject
private LatkeBeanManager beanManager;
/** /**
* Preference query service. * Preference query service.
*/ */
...@@ -363,7 +371,7 @@ public final class RepairProcessor { ...@@ -363,7 +371,7 @@ public final class RepairProcessor {
boolean succeed = false; boolean succeed = false;
try { try {
remove(ArchiveDateArticleRepositoryImpl.getInstance()); remove((Repository) beanManager.getReference(ArchiveDateArticleRepositoryImpl.class));
remove(ArchiveDateRepositoryImpl.getInstance()); remove(ArchiveDateRepositoryImpl.getInstance());
remove(ArticleRepositoryImpl.getInstance()); remove(ArticleRepositoryImpl.getInstance());
remove(CommentRepositoryImpl.getInstance()); remove(CommentRepositoryImpl.getInstance());
......
...@@ -22,6 +22,7 @@ import java.net.URLEncoder; ...@@ -22,6 +22,7 @@ import java.net.URLEncoder;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -77,7 +78,8 @@ public final class TagProcessor { ...@@ -77,7 +78,8 @@ public final class TagProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Language service. * Language service.
...@@ -97,7 +99,8 @@ public final class TagProcessor { ...@@ -97,7 +99,8 @@ public final class TagProcessor {
/** /**
* Article query service. * Article query service.
*/ */
private ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); @Inject
private ArticleQueryService articleQueryService;
/** /**
* Tag query service. * Tag query service.
......
...@@ -19,6 +19,7 @@ package org.b3log.solo.processor; ...@@ -19,6 +19,7 @@ package org.b3log.solo.processor;
import freemarker.template.Template; import freemarker.template.Template;
import java.io.IOException; import java.io.IOException;
import java.util.Map; import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -69,7 +70,8 @@ public final class UserTemplateProcessor { ...@@ -69,7 +70,8 @@ public final class UserTemplateProcessor {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Preference query service. * Preference query service.
......
...@@ -20,6 +20,7 @@ import java.util.Calendar; ...@@ -20,6 +20,7 @@ import java.util.Calendar;
import java.util.Locale; import java.util.Locale;
import java.util.Map; import java.util.Map;
import java.util.TimeZone; import java.util.TimeZone;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -84,7 +85,8 @@ public final class AdminConsole { ...@@ -84,7 +85,8 @@ public final class AdminConsole {
/** /**
* Filler. * Filler.
*/ */
private Filler filler = Filler.getInstance(); @Inject
private Filler filler;
/** /**
* Event manager. * Event manager.
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -61,12 +62,14 @@ public final class ArticleConsole { ...@@ -61,12 +62,14 @@ public final class ArticleConsole {
/** /**
* Article management service. * Article management service.
*/ */
private ArticleMgmtService articleMgmtService = ArticleMgmtService.getInstance(); @Inject
private ArticleMgmtService articleMgmtService;
/** /**
* Article query service. * Article query service.
*/ */
private ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); @Inject
private ArticleQueryService articleQueryService;
/** /**
* User utilities. * User utilities.
......
...@@ -24,6 +24,7 @@ import java.util.List; ...@@ -24,6 +24,7 @@ import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringEscapeUtils;
...@@ -41,6 +42,7 @@ import org.b3log.latke.model.User; ...@@ -41,6 +42,7 @@ import org.b3log.latke.model.User;
import org.b3log.latke.plugin.ViewLoadEventData; import org.b3log.latke.plugin.ViewLoadEventData;
import org.b3log.latke.repository.*; import org.b3log.latke.repository.*;
import org.b3log.latke.service.ServiceException; import org.b3log.latke.service.ServiceException;
import org.b3log.latke.service.annotation.Service;
import org.b3log.latke.util.*; import org.b3log.latke.util.*;
import org.b3log.latke.util.freemarker.Templates; import org.b3log.latke.util.freemarker.Templates;
import org.b3log.solo.SoloServletListener; import org.b3log.solo.SoloServletListener;
...@@ -77,6 +79,7 @@ import org.json.JSONObject; ...@@ -77,6 +79,7 @@ import org.json.JSONObject;
* @version 1.0.6.5, May 17, 2013 * @version 1.0.6.5, May 17, 2013
* @since 0.3.1 * @since 0.3.1
*/ */
@Service
public final class Filler { public final class Filler {
/** /**
...@@ -137,7 +140,8 @@ public final class Filler { ...@@ -137,7 +140,8 @@ public final class Filler {
/** /**
* Article query service. * Article query service.
*/ */
private ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); @Inject
private ArticleQueryService articleQueryService;
/** /**
* {@code true} for published. * {@code true} for published.
...@@ -1030,37 +1034,4 @@ public final class Filler { ...@@ -1030,37 +1034,4 @@ public final class Filler {
article.put(Article.ARTICLE_ABSTRACT, article.optString(Article.ARTICLE_CONTENT)); article.put(Article.ARTICLE_ABSTRACT, article.optString(Article.ARTICLE_CONTENT));
} }
} }
/**
* Gets the {@link Filler} singleton.
*
* @return the singleton
*/
public static Filler getInstance() {
return SingletonHolder.SINGLETON;
}
/**
* Private default constructor.
*/
private Filler() {}
/**
* Singleton holder.
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.0.0, Jan 12, 2011
*/
private static final class SingletonHolder {
/**
* Singleton.
*/
private static final Filler SINGLETON = new Filler();
/**
* Private default constructor.
*/
private SingletonHolder() {}
}
} }
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import javax.inject.Named;
import javax.inject.Singleton;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.repository.*; import org.b3log.latke.repository.*;
import org.b3log.solo.model.Article; import org.b3log.solo.model.Article;
...@@ -32,13 +34,16 @@ import org.json.JSONObject; ...@@ -32,13 +34,16 @@ import org.json.JSONObject;
* @version 1.0.0.6, Nov 9, 2011 * @version 1.0.0.6, Nov 9, 2011
* @since 0.3.1 * @since 0.3.1
*/ */
@Named
@Singleton
public final class ArchiveDateArticleRepositoryImpl extends AbstractRepository implements ArchiveDateArticleRepository { public final class ArchiveDateArticleRepositoryImpl extends AbstractRepository implements ArchiveDateArticleRepository {
/** /**
* Singleton. * Public constructor.
*/ */
private static final ArchiveDateArticleRepositoryImpl SINGLETON = new ArchiveDateArticleRepositoryImpl( public ArchiveDateArticleRepositoryImpl() {
ArchiveDate.ARCHIVE_DATE + "_" + Article.ARTICLE); super(ArchiveDate.ARCHIVE_DATE + "_" + Article.ARTICLE);
}
@Override @Override
public JSONObject getByArchiveDateId(final String archiveDateId, final int currentPageNum, final int pageSize) public JSONObject getByArchiveDateId(final String archiveDateId, final int currentPageNum, final int pageSize)
...@@ -64,22 +69,4 @@ public final class ArchiveDateArticleRepositoryImpl extends AbstractRepository i ...@@ -64,22 +69,4 @@ public final class ArchiveDateArticleRepositoryImpl extends AbstractRepository i
return array.optJSONObject(0); return array.optJSONObject(0);
} }
/**
* Gets the {@link ArchiveDateArticleRepositoryImpl} singleton.
*
* @return the singleton
*/
public static ArchiveDateArticleRepositoryImpl getInstance() {
return SINGLETON;
}
/**
* Private constructor.
*
* @param name the specified name
*/
private ArchiveDateArticleRepositoryImpl(final String name) {
super(name);
}
} }
...@@ -21,6 +21,7 @@ import java.util.ArrayList; ...@@ -21,6 +21,7 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import javax.inject.Inject;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils; import org.apache.commons.lang.time.DateUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -33,6 +34,7 @@ import org.b3log.latke.repository.RepositoryException; ...@@ -33,6 +34,7 @@ import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.Transaction; import org.b3log.latke.repository.Transaction;
import org.b3log.latke.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException; import org.b3log.latke.service.ServiceException;
import org.b3log.latke.service.annotation.Service;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.latke.util.Ids; import org.b3log.latke.util.Ids;
import org.b3log.latke.util.Strings; import org.b3log.latke.util.Strings;
...@@ -46,7 +48,6 @@ import org.b3log.solo.repository.CommentRepository; ...@@ -46,7 +48,6 @@ import org.b3log.solo.repository.CommentRepository;
import org.b3log.solo.repository.TagArticleRepository; import org.b3log.solo.repository.TagArticleRepository;
import org.b3log.solo.repository.TagRepository; import org.b3log.solo.repository.TagRepository;
import org.b3log.solo.repository.UserRepository; import org.b3log.solo.repository.UserRepository;
import org.b3log.solo.repository.impl.ArchiveDateArticleRepositoryImpl;
import org.b3log.solo.repository.impl.ArchiveDateRepositoryImpl; import org.b3log.solo.repository.impl.ArchiveDateRepositoryImpl;
import org.b3log.solo.repository.impl.ArticleRepositoryImpl; import org.b3log.solo.repository.impl.ArticleRepositoryImpl;
import org.b3log.solo.repository.impl.CommentRepositoryImpl; import org.b3log.solo.repository.impl.CommentRepositoryImpl;
...@@ -71,6 +72,7 @@ import org.json.JSONObject; ...@@ -71,6 +72,7 @@ import org.json.JSONObject;
* @version 1.0.1.5, Jan 30, 2013 * @version 1.0.1.5, Jan 30, 2013
* @since 0.3.5 * @since 0.3.5
*/ */
@Service
public final class ArticleMgmtService { public final class ArticleMgmtService {
/** /**
...@@ -101,7 +103,8 @@ public final class ArticleMgmtService { ...@@ -101,7 +103,8 @@ public final class ArticleMgmtService {
/** /**
* Archive date-Article repository. * Archive date-Article repository.
*/ */
private ArchiveDateArticleRepository archiveDateArticleRepository = ArchiveDateArticleRepositoryImpl.getInstance(); @Inject
private ArchiveDateArticleRepository archiveDateArticleRepository;
/** /**
* Tag-Article repository. * Tag-Article repository.
...@@ -1205,35 +1208,11 @@ public final class ArticleMgmtService { ...@@ -1205,35 +1208,11 @@ public final class ArticleMgmtService {
} }
/** /**
* Gets the {@link ArticleMgmtService} singleton. * Sets archive date article repository with the specified archive date article repository.
* *
* @return the singleton * @param archiveDateArticleRepository the specified archive date article repository
*/ */
public static ArticleMgmtService getInstance() { public void setArchiveDateArticleRepository(final ArchiveDateArticleRepository archiveDateArticleRepository) {
return SingletonHolder.SINGLETON; this.archiveDateArticleRepository = archiveDateArticleRepository;
}
/**
* Private constructor.
*/
private ArticleMgmtService() {}
/**
* Singleton holder.
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.0.0, Oct 3, 2011
*/
private static final class SingletonHolder {
/**
* Singleton.
*/
private static final ArticleMgmtService SINGLETON = new ArticleMgmtService();
/**
* Private default constructor.
*/
private SingletonHolder() {}
} }
} }
...@@ -22,6 +22,7 @@ import java.util.Date; ...@@ -22,6 +22,7 @@ import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.inject.Inject;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.logging.Level; import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
...@@ -29,6 +30,7 @@ import org.b3log.latke.model.Pagination; ...@@ -29,6 +30,7 @@ import org.b3log.latke.model.Pagination;
import org.b3log.latke.model.User; import org.b3log.latke.model.User;
import org.b3log.latke.repository.*; import org.b3log.latke.repository.*;
import org.b3log.latke.service.ServiceException; import org.b3log.latke.service.ServiceException;
import org.b3log.latke.service.annotation.Service;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.latke.util.Paginator; import org.b3log.latke.util.Paginator;
import org.b3log.latke.util.Stopwatchs; import org.b3log.latke.util.Stopwatchs;
...@@ -43,7 +45,6 @@ import org.b3log.solo.repository.ArchiveDateArticleRepository; ...@@ -43,7 +45,6 @@ import org.b3log.solo.repository.ArchiveDateArticleRepository;
import org.b3log.solo.repository.ArticleRepository; import org.b3log.solo.repository.ArticleRepository;
import org.b3log.solo.repository.TagArticleRepository; import org.b3log.solo.repository.TagArticleRepository;
import org.b3log.solo.repository.TagRepository; import org.b3log.solo.repository.TagRepository;
import org.b3log.solo.repository.impl.ArchiveDateArticleRepositoryImpl;
import org.b3log.solo.repository.impl.ArticleRepositoryImpl; import org.b3log.solo.repository.impl.ArticleRepositoryImpl;
import org.b3log.solo.repository.impl.TagArticleRepositoryImpl; import org.b3log.solo.repository.impl.TagArticleRepositoryImpl;
import org.b3log.solo.repository.impl.TagRepositoryImpl; import org.b3log.solo.repository.impl.TagRepositoryImpl;
...@@ -63,6 +64,7 @@ import org.json.JSONObject; ...@@ -63,6 +64,7 @@ import org.json.JSONObject;
* @version 1.0.1.2, Jan 30, 2013 * @version 1.0.1.2, Jan 30, 2013
* @since 0.3.5 * @since 0.3.5
*/ */
@Service
public final class ArticleQueryService { public final class ArticleQueryService {
/** /**
...@@ -93,7 +95,8 @@ public final class ArticleQueryService { ...@@ -93,7 +95,8 @@ public final class ArticleQueryService {
/** /**
* Archive date-Article repository. * Archive date-Article repository.
*/ */
private ArchiveDateArticleRepository archiveDateArticleRepository = ArchiveDateArticleRepositoryImpl.getInstance(); @Inject
private ArchiveDateArticleRepository archiveDateArticleRepository;
/** /**
* Statistic utilities. * Statistic utilities.
...@@ -810,35 +813,11 @@ public final class ArticleQueryService { ...@@ -810,35 +813,11 @@ public final class ArticleQueryService {
} }
/** /**
* Gets the {@link ArticleQueryService} singleton. * Sets archive date article repository with the specified archive date article repository.
* *
* @return the singleton * @param archiveDateArticleRepository the specified archive date article repository
*/ */
public static ArticleQueryService getInstance() { public void setArchiveDateArticleRepository(final ArchiveDateArticleRepository archiveDateArticleRepository) {
return SingletonHolder.SINGLETON; this.archiveDateArticleRepository = archiveDateArticleRepository;
}
/**
* Private constructor.
*/
private ArticleQueryService() {}
/**
* Singleton holder.
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.0.0, Oct 3, 2011
*/
private static final class SingletonHolder {
/**
* Singleton.
*/
private static final ArticleQueryService SINGLETON = new ArticleQueryService();
/**
* Private default constructor.
*/
private SingletonHolder() {}
} }
} }
...@@ -22,6 +22,7 @@ import java.text.ParseException; ...@@ -22,6 +22,7 @@ import java.text.ParseException;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import javax.inject.Inject;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.apache.commons.lang.time.DateUtils; import org.apache.commons.lang.time.DateUtils;
...@@ -38,6 +39,7 @@ import org.b3log.latke.repository.jdbc.util.JdbcRepositories; ...@@ -38,6 +39,7 @@ import org.b3log.latke.repository.jdbc.util.JdbcRepositories;
import org.b3log.latke.repository.jdbc.util.JdbcRepositories.CreateTableResult; import org.b3log.latke.repository.jdbc.util.JdbcRepositories.CreateTableResult;
import org.b3log.latke.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException; import org.b3log.latke.service.ServiceException;
import org.b3log.latke.service.annotation.Service;
import org.b3log.latke.util.Ids; import org.b3log.latke.util.Ids;
import org.b3log.latke.util.MD5; import org.b3log.latke.util.MD5;
import org.b3log.latke.util.freemarker.Templates; import org.b3log.latke.util.freemarker.Templates;
...@@ -62,6 +64,7 @@ import org.json.JSONObject; ...@@ -62,6 +64,7 @@ import org.json.JSONObject;
* @version 1.0.1.6, May 17, 2013 * @version 1.0.1.6, May 17, 2013
* @since 0.4.0 * @since 0.4.0
*/ */
@Service
public final class InitService { public final class InitService {
/** /**
...@@ -97,7 +100,8 @@ public final class InitService { ...@@ -97,7 +100,8 @@ public final class InitService {
/** /**
* Archive date-Article repository. * Archive date-Article repository.
*/ */
private ArchiveDateArticleRepository archiveDateArticleRepository = ArchiveDateArticleRepositoryImpl.getInstance(); @Inject
private ArchiveDateArticleRepository archiveDateArticleRepository;
/** /**
* Tag repository. * Tag repository.
...@@ -583,35 +587,11 @@ public final class InitService { ...@@ -583,35 +587,11 @@ public final class InitService {
} }
/** /**
* Gets the {@link InitService} singleton. * Sets archive date article repository with the specified archive date article repository.
* *
* @return the singleton * @param archiveDateArticleRepository the specified archive date article repository
*/ */
public static InitService getInstance() { public void setArchiveDateArticleRepository(final ArchiveDateArticleRepository archiveDateArticleRepository) {
return SingletonHolder.SINGLETON; this.archiveDateArticleRepository = archiveDateArticleRepository;
}
/**
* Private constructor.
*/
private InitService() {}
/**
* Singleton holder.
*
* @author <a href="mailto:DL88250@gmail.com">Liang Ding</a>
* @version 1.0.0.0, Oct 24, 2011
*/
private static final class SingletonHolder {
/**
* Singleton.
*/
private static final InitService SINGLETON = new InitService();
/**
* Private default constructor.
*/
private SingletonHolder() {}
} }
} }
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>
...@@ -245,31 +245,50 @@ public abstract class AbstractTestCase { ...@@ -245,31 +245,50 @@ public abstract class AbstractTestCase {
pageRepository = PageRepositoryImpl.getInstance(); pageRepository = PageRepositoryImpl.getInstance();
commentRepository = CommentRepositoryImpl.getInstance(); commentRepository = CommentRepositoryImpl.getInstance();
archiveDateRepository = ArchiveDateRepositoryImpl.getInstance(); archiveDateRepository = ArchiveDateRepositoryImpl.getInstance();
archiveDateArticleRepository = archiveDateArticleRepository = new ArchiveDateArticleRepositoryImpl();
ArchiveDateArticleRepositoryImpl.getInstance();
pluginRepository = PluginRepositoryImpl.getInstance(); pluginRepository = PluginRepositoryImpl.getInstance();
preferenceRepository = PreferenceRepositoryImpl.getInstance(); preferenceRepository = PreferenceRepositoryImpl.getInstance();
statisticRepository = StatisticRepositoryImpl.getInstance(); statisticRepository = StatisticRepositoryImpl.getInstance();
optionRepository = OptionRepositoryImpl.getInstance(); optionRepository = OptionRepositoryImpl.getInstance();
// Services // Services
initService = InitService.getInstance(); initService = new InitService();
initService.setArchiveDateArticleRepository(archiveDateArticleRepository);
userMgmtService = UserMgmtService.getInstance(); userMgmtService = UserMgmtService.getInstance();
userQueryService = UserQueryService.getInstance(); userQueryService = UserQueryService.getInstance();
articleMgmtService = ArticleMgmtService.getInstance();
articleQueryService = ArticleQueryService.getInstance(); articleMgmtService = new ArticleMgmtService();
articleMgmtService.setArchiveDateArticleRepository(archiveDateArticleRepository);
articleQueryService = new ArticleQueryService();
articleQueryService.setArchiveDateArticleRepository(archiveDateArticleRepository);
pageMgmtService = PageMgmtService.getInstance(); pageMgmtService = PageMgmtService.getInstance();
pageQueryService = PageQueryService.getInstance(); pageQueryService = PageQueryService.getInstance();
linkMgmtService = LinkMgmtService.getInstance(); linkMgmtService = LinkMgmtService.getInstance();
linkQueryService = LinkQueryService.getInstance(); linkQueryService = LinkQueryService.getInstance();
preferenceMgmtService = PreferenceMgmtService.getInstance(); preferenceMgmtService = PreferenceMgmtService.getInstance();
preferenceQueryService = PreferenceQueryService.getInstance(); preferenceQueryService = PreferenceQueryService.getInstance();
tagQueryService = TagQueryService.getInstance(); tagQueryService = TagQueryService.getInstance();
tagMgmtService = TagMgmtService.getInstance(); tagMgmtService = TagMgmtService.getInstance();
commentQueryService = CommentQueryService.getInstance(); commentQueryService = CommentQueryService.getInstance();
commentMgmtService = CommentMgmtService.getInstance(); commentMgmtService = CommentMgmtService.getInstance();
archiveDateQueryService = ArchiveDateQueryService.getInstance(); archiveDateQueryService = ArchiveDateQueryService.getInstance();
optionMgmtService = OptionMgmtService.getInstance(); optionMgmtService = OptionMgmtService.getInstance();
optionQueryService = OptionQueryService.getInstance(); optionQueryService = OptionQueryService.getInstance();
} }
......
...@@ -61,7 +61,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase { ...@@ -61,7 +61,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase {
*/ */
@Test(dependsOnMethods = "init") @Test(dependsOnMethods = "init")
public void getRecentArticles() throws Exception { public void getRecentArticles() throws Exception {
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
final List<JSONObject> articles = articleQueryService.getRecentArticles(10); final List<JSONObject> articles = articleQueryService.getRecentArticles(10);
Assert.assertEquals(articles.size(), 1); Assert.assertEquals(articles.size(), 1);
...@@ -74,7 +74,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase { ...@@ -74,7 +74,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase {
*/ */
@Test(dependsOnMethods = "getRecentArticles") @Test(dependsOnMethods = "getRecentArticles")
public void getArticle() throws Exception { public void getArticle() throws Exception {
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
final List<JSONObject> articles = articleQueryService.getRecentArticles(10); final List<JSONObject> articles = articleQueryService.getRecentArticles(10);
Assert.assertEquals(articles.size(), 1); Assert.assertEquals(articles.size(), 1);
...@@ -93,7 +93,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase { ...@@ -93,7 +93,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase {
*/ */
@Test(dependsOnMethods = "getRecentArticles") @Test(dependsOnMethods = "getRecentArticles")
public void getArticleById() throws Exception { public void getArticleById() throws Exception {
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
final List<JSONObject> articles = articleQueryService.getRecentArticles(10); final List<JSONObject> articles = articleQueryService.getRecentArticles(10);
Assert.assertEquals(articles.size(), 1); Assert.assertEquals(articles.size(), 1);
...@@ -112,7 +112,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase { ...@@ -112,7 +112,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase {
*/ */
@Test(dependsOnMethods = "getRecentArticles") @Test(dependsOnMethods = "getRecentArticles")
public void getArticleContent() throws Exception { public void getArticleContent() throws Exception {
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
final List<JSONObject> articles = articleQueryService.getRecentArticles(10); final List<JSONObject> articles = articleQueryService.getRecentArticles(10);
...@@ -140,7 +140,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase { ...@@ -140,7 +140,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase {
final String tagId = tag.getString(Keys.OBJECT_ID); final String tagId = tag.getString(Keys.OBJECT_ID);
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
final List<JSONObject> articles = articleQueryService.getArticlesByTag(tagId, 1, Integer.MAX_VALUE); final List<JSONObject> articles = articleQueryService.getArticlesByTag(tagId, 1, Integer.MAX_VALUE);
Assert.assertNotNull(articles); Assert.assertNotNull(articles);
Assert.assertEquals(articles.size(), 1); Assert.assertEquals(articles.size(), 1);
...@@ -162,7 +162,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase { ...@@ -162,7 +162,7 @@ public class ArticleQueryServiceTestCase extends AbstractTestCase {
final JSONObject archiveDate = archiveDates.get(0); final JSONObject archiveDate = archiveDates.get(0);
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
List<JSONObject> articles = List<JSONObject> articles =
articleQueryService.getArticlesByArchiveDate(archiveDate.getString(Keys.OBJECT_ID), 1, Integer.MAX_VALUE); articleQueryService.getArticlesByArchiveDate(archiveDate.getString(Keys.OBJECT_ID), 1, Integer.MAX_VALUE);
Assert.assertNotNull(articles); Assert.assertNotNull(articles);
......
...@@ -63,7 +63,7 @@ public class CommentMgmtServiceTestCase extends AbstractTestCase { ...@@ -63,7 +63,7 @@ public class CommentMgmtServiceTestCase extends AbstractTestCase {
*/ */
@Test(dependsOnMethods = "init") @Test(dependsOnMethods = "init")
public void addArticleComment() throws Exception { public void addArticleComment() throws Exception {
final ArticleQueryService articleQueryService = ArticleQueryService.getInstance(); final ArticleQueryService articleQueryService = getArticleQueryService();
final List<JSONObject> articles = articleQueryService.getRecentArticles(10); final List<JSONObject> articles = articleQueryService.getRecentArticles(10);
......
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