Commit d86b66ef authored by Liang Ding's avatar Liang Ding

Merge remote-tracking branch 'refs/remotes/origin/2.0.0-dev'

parents 1326eddf 204f9cee
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
Description: Solo POM. Description: Solo POM.
Version: 3.15.1.32, Mar 19, 2017 Version: 3.16.1.35, Apr 11, 2017
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.annpeter.cn">Ann Peter</a> Author: <a href="http://www.annpeter.cn">Ann Peter</a>
Author: <a href="http://vanessa.b3log.org">Vanessa</a>
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
...@@ -13,7 +14,7 @@ ...@@ -13,7 +14,7 @@
<artifactId>solo</artifactId> <artifactId>solo</artifactId>
<packaging>war</packaging> <packaging>war</packaging>
<name>Solo</name> <name>Solo</name>
<version>1.9.0</version> <version>2.0.0</version>
<description> <description>
A blogging system written in Java, feel free to create your or your team own blog. 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧。 A blogging system written in Java, feel free to create your or your team own blog. 一个用 Java 实现的博客系统,为你或你的团队创建个博客吧。
</description> </description>
...@@ -58,7 +59,7 @@ ...@@ -58,7 +59,7 @@
<organizationUrl>http://b3log.org</organizationUrl> <organizationUrl>http://b3log.org</organizationUrl>
<timezone>+8</timezone> <timezone>+8</timezone>
</developer> </developer>
<developer> <developer>
<id>wmainlove@gmail.com</id> <id>wmainlove@gmail.com</id>
<name>Liceng Yao</name> <name>Liceng Yao</name>
...@@ -71,7 +72,7 @@ ...@@ -71,7 +72,7 @@
<organizationUrl>http://b3log.org</organizationUrl> <organizationUrl>http://b3log.org</organizationUrl>
<timezone>+8</timezone> <timezone>+8</timezone>
</developer> </developer>
<developer> <developer>
<id>dongxu.wang@acm.org</id> <id>dongxu.wang@acm.org</id>
<name>Dongxu Wang</name> <name>Dongxu Wang</name>
...@@ -102,11 +103,11 @@ ...@@ -102,11 +103,11 @@
<scm> <scm>
<url>https://github.com/b3log/solo</url> <url>https://github.com/b3log/solo</url>
</scm> </scm>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<org.b3log.latke.version>2.3.8</org.b3log.latke.version> <org.b3log.latke.version>2.3.10</org.b3log.latke.version>
<servlet.version>3.1.0</servlet.version> <servlet.version>3.1.0</servlet.version>
<slf4j.version>1.7.5</slf4j.version> <slf4j.version>1.7.5</slf4j.version>
...@@ -125,7 +126,7 @@ ...@@ -125,7 +126,7 @@
<maven-license-plugin.version>1.9.0</maven-license-plugin.version> <maven-license-plugin.version>1.9.0</maven-license-plugin.version>
<coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version> <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
<cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version> <cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
<maven-min-plugin.version>1.0.0</maven-min-plugin.version> <maven-min-plugin.version>1.0.3</maven-min-plugin.version>
<!-- Unit Test --> <!-- Unit Test -->
<testng.version>6.1.1</testng.version> <testng.version>6.1.1</testng.version>
<!-- JDBC Drivers --> <!-- JDBC Drivers -->
...@@ -138,25 +139,25 @@ ...@@ -138,25 +139,25 @@
<artifactId>latke</artifactId> <artifactId>latke</artifactId>
<version>${org.b3log.latke.version}</version> <version>${org.b3log.latke.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>javax.servlet</groupId> <groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId> <artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version> <version>${servlet.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>mysql</groupId> <groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId> <artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version> <version>${mysql-connector-java.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.b3log</groupId> <groupId>org.b3log</groupId>
<artifactId>latke-repository-mysql</artifactId> <artifactId>latke-repository-mysql</artifactId>
<version>${org.b3log.latke.version}</version> <version>${org.b3log.latke.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.b3log</groupId> <groupId>org.b3log</groupId>
<artifactId>latke-repository-h2</artifactId> <artifactId>latke-repository-h2</artifactId>
...@@ -181,13 +182,13 @@ ...@@ -181,13 +182,13 @@
<artifactId>slf4j-log4j12</artifactId> <artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version> <version>${slf4j.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.pegdown</groupId> <groupId>org.pegdown</groupId>
<artifactId>pegdown</artifactId> <artifactId>pegdown</artifactId>
<version>${pegdown.version}</version> <version>${pegdown.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.vdurmont</groupId> <groupId>com.vdurmont</groupId>
<artifactId>emoji-java</artifactId> <artifactId>emoji-java</artifactId>
...@@ -199,31 +200,31 @@ ...@@ -199,31 +200,31 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.qiniu</groupId> <groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId> <artifactId>qiniu-java-sdk</artifactId>
<version>${qiniu.version}</version> <version>${qiniu.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>commons-cli</groupId> <groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId> <artifactId>commons-cli</artifactId>
<version>${commons-cli.version}</version> <version>${commons-cli.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.jetty</groupId> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-webapp</artifactId> <artifactId>jetty-webapp</artifactId>
<version>${jetty.version}</version> <version>${jetty.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.jodd</groupId> <groupId>org.jodd</groupId>
<artifactId>jodd-http</artifactId> <artifactId>jodd-http</artifactId>
<version>${jodd.version}</version> <version>${jodd.version}</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.mockito</groupId> <groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId> <artifactId>mockito-all</artifactId>
...@@ -232,7 +233,7 @@ ...@@ -232,7 +233,7 @@
</dependency> </dependency>
</dependencies> </dependencies>
<build> <build>
<resources> <resources>
<resource> <resource>
...@@ -242,7 +243,7 @@ ...@@ -242,7 +243,7 @@
</excludes> </excludes>
</resource> </resource>
</resources> </resources>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.eluder.coveralls</groupId> <groupId>org.eluder.coveralls</groupId>
...@@ -255,7 +256,7 @@ ...@@ -255,7 +256,7 @@
</formats> </formats>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.codehaus.mojo</groupId> <groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId> <artifactId>cobertura-maven-plugin</artifactId>
...@@ -274,7 +275,7 @@ ...@@ -274,7 +275,7 @@
</instrumentation> </instrumentation>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId> <artifactId>maven-resources-plugin</artifactId>
...@@ -283,7 +284,7 @@ ...@@ -283,7 +284,7 @@
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
...@@ -294,7 +295,7 @@ ...@@ -294,7 +295,7 @@
<encoding>UTF-8</encoding> <encoding>UTF-8</encoding>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId> <artifactId>maven-surefire-plugin</artifactId>
...@@ -303,7 +304,7 @@ ...@@ -303,7 +304,7 @@
<skipTests>false</skipTests> <skipTests>false</skipTests>
</configuration> </configuration>
</plugin> </plugin>
<plugin> <plugin>
<groupId>com.mycila.maven-license-plugin</groupId> <groupId>com.mycila.maven-license-plugin</groupId>
<artifactId>maven-license-plugin</artifactId> <artifactId>maven-license-plugin</artifactId>
...@@ -356,7 +357,7 @@ ...@@ -356,7 +357,7 @@
--> -->
</executions> </executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.b3log</groupId> <groupId>org.b3log</groupId>
<artifactId>maven-min-plugin</artifactId> <artifactId>maven-min-plugin</artifactId>
...@@ -383,6 +384,7 @@ ...@@ -383,6 +384,7 @@
<param>preference.js</param> <param>preference.js</param>
<param>pluginList.js</param> <param>pluginList.js</param>
<param>userList.js</param> <param>userList.js</param>
<param>categoryList.js</param>
<param>commentList.js</param> <param>commentList.js</param>
<param>plugin.js</param> <param>plugin.js</param>
<param>main.js</param> <param>main.js</param>
...@@ -406,7 +408,7 @@ ...@@ -406,7 +408,7 @@
--> -->
</executions> </executions>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.eclipse.jetty</groupId> <groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId> <artifactId>jetty-maven-plugin</artifactId>
...@@ -425,8 +427,23 @@ ...@@ -425,8 +427,23 @@
</plugin> </plugin>
</plugins> </plugins>
<finalName>solo</finalName> <finalName>solo</finalName>
</build> </build>
<repositories>
<repository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</pluginRepository>
</pluginRepositories>
</project> </project>
...@@ -15,14 +15,6 @@ ...@@ -15,14 +15,6 @@
*/ */
package org.b3log.solo; package org.b3log.solo;
import java.util.ResourceBundle;
import java.util.Set;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletRequestEvent;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
...@@ -56,11 +48,20 @@ import org.b3log.solo.service.UpgradeService; ...@@ -56,11 +48,20 @@ import org.b3log.solo.service.UpgradeService;
import org.b3log.solo.util.Skins; import org.b3log.solo.util.Skins;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletRequestEvent;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpSessionEvent;
import java.util.ResourceBundle;
import java.util.Set;
/** /**
* 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.2.19, Feb 20, 2017 * @version 1.9.2.20, Apr 10, 2017
* @since 0.3.1 * @since 0.3.1
*/ */
public final class SoloServletListener extends AbstractServletListener { public final class SoloServletListener extends AbstractServletListener {
...@@ -68,7 +69,7 @@ public final class SoloServletListener extends AbstractServletListener { ...@@ -68,7 +69,7 @@ public final class SoloServletListener extends AbstractServletListener {
/** /**
* Solo version. * Solo version.
*/ */
public static final String VERSION = "1.9.0"; public static final String VERSION = "2.0.0";
/** /**
* Logger. * Logger.
......
...@@ -15,16 +15,7 @@ ...@@ -15,16 +15,7 @@
*/ */
package org.b3log.solo; package org.b3log.solo;
import java.awt.Desktop; import org.apache.commons.cli.*;
import java.io.File;
import java.net.URI;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.DefaultParser;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.RuntimeMode; import org.b3log.latke.RuntimeMode;
import org.b3log.latke.logging.Level; import org.b3log.latke.logging.Level;
...@@ -35,6 +26,10 @@ import org.eclipse.jetty.util.log.Log; ...@@ -35,6 +26,10 @@ import org.eclipse.jetty.util.log.Log;
import org.eclipse.jetty.util.log.Slf4jLog; import org.eclipse.jetty.util.log.Slf4jLog;
import org.eclipse.jetty.webapp.WebAppContext; import org.eclipse.jetty.webapp.WebAppContext;
import java.awt.*;
import java.io.File;
import java.net.URI;
/** /**
* Solo with embedded Jetty, <a href="https://github.com/b3log/solo/issues/12037">standalone mode</a>. * Solo with embedded Jetty, <a href="https://github.com/b3log/solo/issues/12037">standalone mode</a>.
* *
......
...@@ -15,19 +15,13 @@ ...@@ -15,19 +15,13 @@
*/ */
package org.b3log.solo.api.metaweblog; package org.b3log.solo.api.metaweblog;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
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;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -43,17 +37,20 @@ import org.b3log.solo.model.Article; ...@@ -43,17 +37,20 @@ import org.b3log.solo.model.Article;
import org.b3log.solo.model.Option; import org.b3log.solo.model.Option;
import org.b3log.solo.model.Tag; import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.ArticleRepository; import org.b3log.solo.repository.ArticleRepository;
import org.b3log.solo.service.ArticleMgmtService; import org.b3log.solo.service.*;
import org.b3log.solo.service.ArticleQueryService;
import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.service.TagQueryService;
import org.b3log.solo.service.UserQueryService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.json.XML; import org.json.XML;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.Date;
import java.util.List;
/** /**
* <a href="http://www.xmlrpc.com/metaWeblogApi">MetaWeblog API</a> requests processing. * <a href="http://www.xmlrpc.com/metaWeblogApi">MetaWeblog API</a> requests processing.
* *
...@@ -423,7 +420,7 @@ public class MetaWeblogAPI { ...@@ -423,7 +420,7 @@ public class MetaWeblogAPI {
} }
} }
final boolean publish = 1 == params.getJSONObject(INDEX_PUBLISH).getJSONObject("value").getInt("boolean") ? true : false; final boolean publish = 1 == params.getJSONObject(INDEX_PUBLISH).getJSONObject("value").getInt("boolean");
ret.put(Article.ARTICLE_IS_PUBLISHED, publish); ret.put(Article.ARTICLE_IS_PUBLISHED, publish);
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
package org.b3log.solo.api.symphony; package org.b3log.solo.api.symphony;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -39,7 +40,6 @@ import org.json.JSONObject; ...@@ -39,7 +40,6 @@ import org.json.JSONObject;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist; import org.jsoup.safety.Whitelist;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
......
...@@ -15,16 +15,11 @@ ...@@ -15,16 +15,11 @@
*/ */
package org.b3log.solo.api.symphony; package org.b3log.solo.api.symphony;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
import org.b3log.latke.ioc.inject.Inject;
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.repository.Transaction; import org.b3log.latke.repository.Transaction;
...@@ -52,6 +47,12 @@ import org.b3log.solo.util.Comments; ...@@ -52,6 +47,12 @@ import org.b3log.solo.util.Comments;
import org.b3log.solo.util.QueryResults; import org.b3log.solo.util.QueryResults;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
/** /**
* Comment receiver (from B3log Symphony). * Comment receiver (from B3log Symphony).
* *
...@@ -229,7 +230,7 @@ public class CommentReceiver { ...@@ -229,7 +230,7 @@ public class CommentReceiver {
comment.put(Comment.COMMENT_ORIGINAL_COMMENT_ID, ""); comment.put(Comment.COMMENT_ORIGINAL_COMMENT_ID, "");
comment.put(Comment.COMMENT_ORIGINAL_COMMENT_NAME, ""); comment.put(Comment.COMMENT_ORIGINAL_COMMENT_NAME, "");
LOGGER.log(Level.WARN, "Not found orginal comment[id={0}] of reply[name={1}, content={2}]", LOGGER.log(Level.WARN, "Not found orginal comment[id={0}] of reply[name={1}, content={2}]",
new String[]{originalCommentId, commentName, commentContent}); originalCommentId, commentName, commentContent);
} }
} else { } else {
comment.put(Comment.COMMENT_ORIGINAL_COMMENT_ID, ""); comment.put(Comment.COMMENT_ORIGINAL_COMMENT_ID, "");
......
...@@ -16,14 +16,10 @@ ...@@ -16,14 +16,10 @@
package org.b3log.solo.dev; package org.b3log.solo.dev;
import java.io.IOException;
import java.util.Date;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.time.DateUtils; import org.apache.commons.lang.time.DateUtils;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.RuntimeMode; import org.b3log.latke.RuntimeMode;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -37,6 +33,11 @@ import org.b3log.solo.service.ArticleMgmtService; ...@@ -37,6 +33,11 @@ import org.b3log.solo.service.ArticleMgmtService;
import org.b3log.solo.service.UserQueryService; import org.b3log.solo.service.UserQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Date;
/** /**
* Generates some dummy articles for development testing. * Generates some dummy articles for development testing.
......
...@@ -65,7 +65,7 @@ public final class ArticleCommentReplyNotifier extends AbstractEventListener<JSO ...@@ -65,7 +65,7 @@ public final class ArticleCommentReplyNotifier extends AbstractEventListener<JSO
LOGGER.log(Level.DEBUG, LOGGER.log(Level.DEBUG,
"Processing an event[type={0}, data={1}] in listener[className={2}]", "Processing an event[type={0}, data={1}] in listener[className={2}]",
new Object[]{event.getType(), eventData, ArticleCommentReplyNotifier.class.getName()}); event.getType(), eventData, ArticleCommentReplyNotifier.class.getName());
final String originalCommentId = comment.optString(Comment.COMMENT_ORIGINAL_COMMENT_ID); final String originalCommentId = comment.optString(Comment.COMMENT_ORIGINAL_COMMENT_ID);
if (Strings.isEmptyOrNull(originalCommentId)) { if (Strings.isEmptyOrNull(originalCommentId)) {
...@@ -144,7 +144,7 @@ public final class ArticleCommentReplyNotifier extends AbstractEventListener<JSO ...@@ -144,7 +144,7 @@ public final class ArticleCommentReplyNotifier extends AbstractEventListener<JSO
message.setHtmlBody(mailBody); message.setHtmlBody(mailBody);
LOGGER.log(Level.DEBUG, "Sending a mail[mailSubject={0}, mailBody=[{1}] to [{2}]", LOGGER.log(Level.DEBUG, "Sending a mail[mailSubject={0}, mailBody=[{1}] to [{2}]",
new Object[]{mailSubject, mailBody, originalCommentEmail}); mailSubject, mailBody, originalCommentEmail);
mailService.send(message); mailService.send(message);
} catch (final Exception e) { } catch (final Exception e) {
......
...@@ -65,7 +65,7 @@ public final class PageCommentReplyNotifier extends AbstractEventListener<JSONOb ...@@ -65,7 +65,7 @@ public final class PageCommentReplyNotifier extends AbstractEventListener<JSONOb
final JSONObject page = eventData.optJSONObject(Page.PAGE); final JSONObject page = eventData.optJSONObject(Page.PAGE);
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}]",
new Object[] {event.getType(), eventData, PageCommentReplyNotifier.class.getName()}); event.getType(), eventData, PageCommentReplyNotifier.class.getName());
final String originalCommentId = comment.optString(Comment.COMMENT_ORIGINAL_COMMENT_ID); final String originalCommentId = comment.optString(Comment.COMMENT_ORIGINAL_COMMENT_ID);
if (Strings.isEmptyOrNull(originalCommentId)) { if (Strings.isEmptyOrNull(originalCommentId)) {
...@@ -123,7 +123,7 @@ public final class PageCommentReplyNotifier extends AbstractEventListener<JSONOb ...@@ -123,7 +123,7 @@ public final class PageCommentReplyNotifier extends AbstractEventListener<JSONOb
message.setHtmlBody(mailBody); message.setHtmlBody(mailBody);
LOGGER.log(Level.DEBUG, "Sending a mail[mailSubject={0}, mailBody=[{1}] to [{2}]", LOGGER.log(Level.DEBUG, "Sending a mail[mailSubject={0}, mailBody=[{1}] to [{2}]",
new Object[] {mailSubject, mailBody, originalCommentEmail}); mailSubject, mailBody, originalCommentEmail);
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);
......
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
package org.b3log.solo.event.ping; package org.b3log.solo.event.ping;
import java.net.URL;
import java.net.URLEncoder;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.AbstractEventListener; import org.b3log.latke.event.AbstractEventListener;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
...@@ -35,6 +33,9 @@ import org.b3log.solo.model.Option; ...@@ -35,6 +33,9 @@ import org.b3log.solo.model.Option;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.URL;
import java.net.URLEncoder;
/** /**
* This listener is responsible for pinging <a href="http://blogsearch.google.com"> * This listener is responsible for pinging <a href="http://blogsearch.google.com">
...@@ -93,7 +94,7 @@ public final class AddArticleGoogleBlogSearchPinger extends AbstractEventListene ...@@ -93,7 +94,7 @@ public final class AddArticleGoogleBlogSearchPinger extends AbstractEventListene
if (Latkes.getServePath().contains("localhost")) { if (Latkes.getServePath().contains("localhost")) {
LOGGER.log(Level.TRACE, LOGGER.log(Level.TRACE,
"Solo runs on local server, so should not ping " + "Google Blog Search Service for the article[title={0}]", "Solo runs on local server, so should not ping " + "Google Blog Search Service for the article[title={0}]",
new Object[] {article.getString(Article.ARTICLE_TITLE)}); article.getString(Article.ARTICLE_TITLE));
return; return;
} }
......
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
package org.b3log.solo.event.ping; package org.b3log.solo.event.ping;
import java.net.URL;
import java.net.URLEncoder;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.AbstractEventListener; import org.b3log.latke.event.AbstractEventListener;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
...@@ -35,6 +33,9 @@ import org.b3log.solo.model.Option; ...@@ -35,6 +33,9 @@ import org.b3log.solo.model.Option;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.URL;
import java.net.URLEncoder;
/** /**
* This listener is responsible for pinging <a href="http://blogsearch.google.com"> * This listener is responsible for pinging <a href="http://blogsearch.google.com">
...@@ -93,7 +94,7 @@ public final class UpdateArticleGoogleBlogSearchPinger extends AbstractEventList ...@@ -93,7 +94,7 @@ public final class UpdateArticleGoogleBlogSearchPinger extends AbstractEventList
if (Latkes.getServePath().contains("localhost")) { if (Latkes.getServePath().contains("localhost")) {
LOGGER.log(Level.TRACE, LOGGER.log(Level.TRACE,
"Solo runs on local server, so should not ping " + "Google Blog Search Service for the article[title={0}]", "Solo runs on local server, so should not ping " + "Google Blog Search Service for the article[title={0}]",
new Object[] {article.getString(Article.ARTICLE_TITLE)}); article.getString(Article.ARTICLE_TITLE));
return; return;
} }
......
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
package org.b3log.solo.event.plugin; package org.b3log.solo.event.plugin;
import java.util.List;
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.event.EventException;
...@@ -31,6 +30,8 @@ import org.b3log.solo.repository.PluginRepository; ...@@ -31,6 +30,8 @@ import org.b3log.solo.repository.PluginRepository;
import org.b3log.solo.repository.impl.PluginRepositoryImpl; import org.b3log.solo.repository.impl.PluginRepositoryImpl;
import org.b3log.solo.service.PluginMgmtService; import org.b3log.solo.service.PluginMgmtService;
import java.util.List;
/** /**
* This listener is responsible for refreshing plugin after every loaded. * This listener is responsible for refreshing plugin after every loaded.
...@@ -51,7 +52,7 @@ public final class PluginRefresher extends AbstractEventListener<List<AbstractPl ...@@ -51,7 +52,7 @@ public final class PluginRefresher extends AbstractEventListener<List<AbstractPl
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}]",
new Object[] {event.getType(), plugins, PluginRefresher.class.getName()}); event.getType(), plugins, PluginRefresher.class.getName());
final LatkeBeanManager beanManager = Lifecycle.getBeanManager(); final LatkeBeanManager beanManager = Lifecycle.getBeanManager();
final PluginRepository pluginRepository = beanManager.getReference(PluginRepositoryImpl.class); final PluginRepository pluginRepository = beanManager.getReference(PluginRepositoryImpl.class);
......
...@@ -15,9 +15,6 @@ ...@@ -15,9 +15,6 @@
*/ */
package org.b3log.solo.event.rhythm; package org.b3log.solo.event.rhythm;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.AbstractEventListener; import org.b3log.latke.event.AbstractEventListener;
...@@ -40,6 +37,10 @@ import org.b3log.solo.model.Option; ...@@ -40,6 +37,10 @@ import org.b3log.solo.model.Option;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
/** /**
* This listener is responsible for sending article to B3log Rhythm. * This listener is responsible for sending article to B3log Rhythm.
* *
...@@ -83,7 +84,7 @@ public final class ArticleSender extends AbstractEventListener<JSONObject> { ...@@ -83,7 +84,7 @@ public final class ArticleSender extends AbstractEventListener<JSONObject> {
final JSONObject data = event.getData(); final JSONObject data = 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}]",
new Object[]{event.getType(), data, ArticleSender.class.getName()}); event.getType(), data, ArticleSender.class.getName());
try { try {
final JSONObject originalArticle = data.getJSONObject(Article.ARTICLE); final JSONObject originalArticle = data.getJSONObject(Article.ARTICLE);
...@@ -108,7 +109,7 @@ public final class ArticleSender extends AbstractEventListener<JSONObject> { ...@@ -108,7 +109,7 @@ public final class ArticleSender extends AbstractEventListener<JSONObject> {
if (Latkes.getServePath().contains("localhost")) { if (Latkes.getServePath().contains("localhost")) {
LOGGER.log(Level.INFO, "Solo runs on local server, so should not send this article[id={0}, title={1}] to Rhythm", LOGGER.log(Level.INFO, "Solo runs on local server, so should not send this article[id={0}, title={1}] to Rhythm",
new Object[]{originalArticle.getString(Keys.OBJECT_ID), originalArticle.getString(Article.ARTICLE_TITLE)}); originalArticle.getString(Keys.OBJECT_ID), originalArticle.getString(Article.ARTICLE_TITLE));
return; return;
} }
......
...@@ -15,9 +15,6 @@ ...@@ -15,9 +15,6 @@
*/ */
package org.b3log.solo.event.rhythm; package org.b3log.solo.event.rhythm;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.AbstractEventListener; import org.b3log.latke.event.AbstractEventListener;
...@@ -40,6 +37,10 @@ import org.b3log.solo.model.Option; ...@@ -40,6 +37,10 @@ import org.b3log.solo.model.Option;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Date;
/** /**
* This listener is responsible for updating article to B3log Rhythm. * This listener is responsible for updating article to B3log Rhythm.
* *
...@@ -82,7 +83,7 @@ public final class ArticleUpdater extends AbstractEventListener<JSONObject> { ...@@ -82,7 +83,7 @@ public final class ArticleUpdater extends AbstractEventListener<JSONObject> {
final JSONObject data = event.getData(); final JSONObject data = 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}]",
new Object[]{event.getType(), data, ArticleUpdater.class.getName()}); event.getType(), data, ArticleUpdater.class.getName());
try { try {
final JSONObject originalArticle = data.getJSONObject(Article.ARTICLE); final JSONObject originalArticle = data.getJSONObject(Article.ARTICLE);
...@@ -107,7 +108,7 @@ public final class ArticleUpdater extends AbstractEventListener<JSONObject> { ...@@ -107,7 +108,7 @@ public final class ArticleUpdater extends AbstractEventListener<JSONObject> {
if (Latkes.getServePath().contains("localhost")) { if (Latkes.getServePath().contains("localhost")) {
LOGGER.log(Level.INFO, "Solo runs on local server, so should not send this article[id={0}, title={1}] to Rhythm", LOGGER.log(Level.INFO, "Solo runs on local server, so should not send this article[id={0}, title={1}] to Rhythm",
new Object[]{originalArticle.getString(Keys.OBJECT_ID), originalArticle.getString(Article.ARTICLE_TITLE)}); originalArticle.getString(Keys.OBJECT_ID), originalArticle.getString(Article.ARTICLE_TITLE));
return; return;
} }
......
...@@ -16,8 +16,6 @@ ...@@ -16,8 +16,6 @@
package org.b3log.solo.event.symphony; package org.b3log.solo.event.symphony;
import java.net.MalformedURLException;
import java.net.URL;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.AbstractEventListener; import org.b3log.latke.event.AbstractEventListener;
...@@ -39,6 +37,9 @@ import org.b3log.solo.model.Option; ...@@ -39,6 +37,9 @@ import org.b3log.solo.model.Option;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import java.net.MalformedURLException;
import java.net.URL;
/** /**
* This listener is responsible for sending comment to B3log Symphony. * This listener is responsible for sending comment to B3log Symphony.
...@@ -78,7 +79,7 @@ public final class CommentSender extends AbstractEventListener<JSONObject> { ...@@ -78,7 +79,7 @@ public final class CommentSender extends AbstractEventListener<JSONObject> {
final JSONObject data = event.getData(); final JSONObject data = 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}]",
new Object[] {event.getType(), data, ArticleSender.class.getName()}); event.getType(), data, ArticleSender.class.getName());
try { try {
final JSONObject originalComment = data.getJSONObject(Comment.COMMENT); final JSONObject originalComment = data.getJSONObject(Comment.COMMENT);
...@@ -93,7 +94,7 @@ public final class CommentSender extends AbstractEventListener<JSONObject> { ...@@ -93,7 +94,7 @@ public final class CommentSender extends AbstractEventListener<JSONObject> {
if (Latkes.getServePath().contains("localhost")) { if (Latkes.getServePath().contains("localhost")) {
LOGGER.log(Level.TRACE, "Solo runs on local server, so should not send this comment[id={0}] to Symphony", LOGGER.log(Level.TRACE, "Solo runs on local server, so should not send this comment[id={0}] to Symphony",
new Object[] {originalComment.getString(Keys.OBJECT_ID)}); originalComment.getString(Keys.OBJECT_ID));
return; return;
} }
......
...@@ -16,15 +16,6 @@ ...@@ -16,15 +16,6 @@
package org.b3log.solo.filter; package org.b3log.solo.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
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.logging.Level; import org.b3log.latke.logging.Level;
...@@ -35,6 +26,11 @@ import org.b3log.solo.service.UserMgmtService; ...@@ -35,6 +26,11 @@ import org.b3log.solo.service.UserMgmtService;
import org.b3log.solo.service.UserQueryService; import org.b3log.solo.service.UserQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* Authentication filter. * Authentication filter.
......
...@@ -15,15 +15,6 @@ ...@@ -15,15 +15,6 @@
*/ */
package org.b3log.solo.filter; package org.b3log.solo.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
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.ioc.LatkeBeanManager; import org.b3log.latke.ioc.LatkeBeanManager;
...@@ -37,6 +28,11 @@ import org.b3log.latke.servlet.HttpControl; ...@@ -37,6 +28,11 @@ import org.b3log.latke.servlet.HttpControl;
import org.b3log.latke.servlet.renderer.HTTP500Renderer; import org.b3log.latke.servlet.renderer.HTTP500Renderer;
import org.b3log.solo.service.InitService; import org.b3log.solo.service.InitService;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* Checks initialization filter. * Checks initialization filter.
* *
......
...@@ -16,15 +16,6 @@ ...@@ -16,15 +16,6 @@
package org.b3log.solo.filter; package org.b3log.solo.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
...@@ -48,6 +39,11 @@ import org.b3log.solo.service.ArticleQueryService; ...@@ -48,6 +39,11 @@ import org.b3log.solo.service.ArticleQueryService;
import org.b3log.solo.service.PermalinkQueryService; import org.b3log.solo.service.PermalinkQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/** /**
* Article/Page permalink filter. * Article/Page permalink filter.
......
/*
* Copyright (c) 2010-2017, b3log.org & hacpai.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.b3log.solo.model;
/**
* This class defines all category model relevant keys.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.0, Mar 30, 2017
* @since 2.0.0
*/
public final class Category {
/**
* Category.
*/
public static final String CATEGORY = "category";
/**
* Categories.
*/
public static final String CATEGORIES = "categories";
/**
* Key of category title.
*/
public static final String CATEGORY_TITLE = "categoryTitle";
/**
* Key of category URI.
*/
public static final String CATEGORY_URI = "categoryURI";
/**
* Key of category description.
*/
public static final String CATEGORY_DESCRIPTION = "categoryDescription";
/**
* Key of category order.
*/
public static final String CATEGORY_ORDER = "categoryOrder";
/**
* Key of category tag count.
*/
public static final String CATEGORY_TAG_CNT = "categoryTagCnt";
//// Transient ////
/**
* Key of category tags.
*/
public static final String CATEGORY_T_TAGS = "categoryTags";
/**
* Private default constructor.
*/
private Category() {
}
}
...@@ -20,7 +20,7 @@ package org.b3log.solo.model; ...@@ -20,7 +20,7 @@ package org.b3log.solo.model;
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="mailto:dongxu.wang@acm.org">Dongxu Wang</a> * @author <a href="mailto:dongxu.wang@acm.org">Dongxu Wang</a>
* @version 1.4.5.1, Nov 1, 2015 * @version 1.5.5.1, Apr 8, 2017
* @since 0.3.1 * @since 0.3.1
*/ */
public final class Common { public final class Common {
...@@ -35,6 +35,11 @@ public final class Common { ...@@ -35,6 +35,11 @@ public final class Common {
*/ */
public static final String MOST_USED_TAGS = "mostUsedTags"; public static final String MOST_USED_TAGS = "mostUsedTags";
/**
* Most used categories.
*/
public static final String MOST_USED_CATEGORIES = "mostUsedCategories";
/** /**
* Most comment count articles. * Most comment count articles.
*/ */
...@@ -174,7 +179,7 @@ public final class Common { ...@@ -174,7 +179,7 @@ public final class Common {
* Key of current user. * Key of current user.
*/ */
public static final String CURRENT_USER = "currentUser"; public static final String CURRENT_USER = "currentUser";
/** /**
* Key of admin user. * Key of admin user.
*/ */
......
...@@ -93,7 +93,7 @@ public enum PageTypes { ...@@ -93,7 +93,7 @@ public enum PageTypes {
* @param langLabel the specified language label * @param langLabel the specified language label
* @param typeName the specified type name * @param typeName the specified type name
*/ */
private PageTypes(final String langLabel, final String typeName) { PageTypes(final String langLabel, final String typeName) {
this.langLabel = langLabel; this.langLabel = langLabel;
this.typeName = typeName; this.typeName = typeName;
} }
......
...@@ -16,13 +16,10 @@ ...@@ -16,13 +16,10 @@
package org.b3log.solo.model.feed.atom; package org.b3log.solo.model.feed.atom;
import java.util.Collections;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.util.TimeZone;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import java.util.*;
/** /**
* Entry. * Entry.
......
...@@ -15,11 +15,12 @@ ...@@ -15,11 +15,12 @@
*/ */
package org.b3log.solo.model.feed.atom; package org.b3log.solo.model.feed.atom;
import org.apache.commons.lang.time.DateFormatUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.TimeZone; import java.util.TimeZone;
import org.apache.commons.lang.time.DateFormatUtils;
/** /**
* Feed. * Feed.
......
...@@ -15,10 +15,11 @@ ...@@ -15,10 +15,11 @@
*/ */
package org.b3log.solo.model.feed.rss; package org.b3log.solo.model.feed.rss;
import org.apache.commons.lang.time.DateFormatUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import org.apache.commons.lang.time.DateFormatUtils;
/** /**
* RSS 2.0 channel. * RSS 2.0 channel.
......
...@@ -15,11 +15,12 @@ ...@@ -15,11 +15,12 @@
*/ */
package org.b3log.solo.model.feed.rss; package org.b3log.solo.model.feed.rss;
import org.apache.commons.lang.time.DateFormatUtils;
import java.util.Date; import java.util.Date;
import java.util.HashSet; import java.util.HashSet;
import java.util.Locale; import java.util.Locale;
import java.util.Set; import java.util.Set;
import org.apache.commons.lang.time.DateFormatUtils;
/** /**
* Item. * Item.
......
...@@ -16,14 +16,9 @@ ...@@ -16,14 +16,9 @@
package org.b3log.solo.plugin.broadcast; package org.b3log.solo.plugin.broadcast;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.Future;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.ioc.inject.Inject;
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.servlet.HTTPRequestContext; import org.b3log.latke.servlet.HTTPRequestContext;
...@@ -46,6 +41,12 @@ import org.b3log.solo.service.UserQueryService; ...@@ -46,6 +41,12 @@ import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.QueryResults; import org.b3log.solo.util.QueryResults;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.Future;
/** /**
* Broadcast chance processor. * Broadcast chance processor.
......
...@@ -15,14 +15,6 @@ ...@@ -15,14 +15,6 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
...@@ -30,6 +22,7 @@ import org.b3log.latke.Latkes; ...@@ -30,6 +22,7 @@ import org.b3log.latke.Latkes;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException; import org.b3log.latke.event.EventException;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
import org.b3log.latke.ioc.inject.Inject;
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.Pagination; import org.b3log.latke.model.Pagination;
...@@ -45,12 +38,7 @@ import org.b3log.latke.servlet.renderer.JSONRenderer; ...@@ -45,12 +38,7 @@ import org.b3log.latke.servlet.renderer.JSONRenderer;
import org.b3log.latke.servlet.renderer.TextHTMLRenderer; import org.b3log.latke.servlet.renderer.TextHTMLRenderer;
import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer; import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer;
import org.b3log.latke.servlet.renderer.freemarker.FreeMarkerRenderer; import org.b3log.latke.servlet.renderer.freemarker.FreeMarkerRenderer;
import org.b3log.latke.util.Dates; import org.b3log.latke.util.*;
import org.b3log.latke.util.Locales;
import org.b3log.latke.util.Paginator;
import org.b3log.latke.util.Requests;
import org.b3log.latke.util.Stopwatchs;
import org.b3log.latke.util.Strings;
import org.b3log.solo.SoloServletListener; import org.b3log.solo.SoloServletListener;
import org.b3log.solo.event.EventTypes; import org.b3log.solo.event.EventTypes;
import org.b3log.solo.model.*; import org.b3log.solo.model.*;
...@@ -64,6 +52,14 @@ import org.json.JSONException; ...@@ -64,6 +52,14 @@ import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.*;
/** /**
* Article processor. * Article processor.
* *
...@@ -670,7 +666,7 @@ public class ArticleProcessor { ...@@ -670,7 +666,7 @@ public class ArticleProcessor {
final String authorId = getAuthorId(requestURI); final String authorId = getAuthorId(requestURI);
LOGGER.log(Level.DEBUG, "Request author articles[requestURI={0}, authorId={1}]", new Object[]{requestURI, authorId}); LOGGER.log(Level.DEBUG, "Request author articles[requestURI={0}, authorId={1}]", requestURI, authorId);
final int currentPageNum = getAuthorCurrentPageNum(requestURI, authorId); final int currentPageNum = getAuthorCurrentPageNum(requestURI, authorId);
...@@ -679,7 +675,7 @@ public class ArticleProcessor { ...@@ -679,7 +675,7 @@ public class ArticleProcessor {
return; return;
} }
LOGGER.log(Level.DEBUG, "Request author articles[authorId={0}, currentPageNum={1}]", new Object[]{authorId, currentPageNum}); LOGGER.log(Level.DEBUG, "Request author articles[authorId={0}, currentPageNum={1}]", authorId, currentPageNum);
final JSONObject preference = preferenceQueryService.getPreference(); final JSONObject preference = preferenceQueryService.getPreference();
...@@ -777,7 +773,7 @@ public class ArticleProcessor { ...@@ -777,7 +773,7 @@ public class ArticleProcessor {
return; return;
} }
LOGGER.log(Level.DEBUG, "Request archive date[string={0}, currentPageNum={1}]", new Object[]{archiveDateString, currentPageNum}); LOGGER.log(Level.DEBUG, "Request archive date[string={0}, currentPageNum={1}]", archiveDateString, currentPageNum);
final JSONObject result = archiveDateQueryService.getByArchiveDateString(archiveDateString); final JSONObject result = archiveDateQueryService.getByArchiveDateString(archiveDateString);
if (null == result) { if (null == result) {
......
...@@ -15,16 +15,10 @@ ...@@ -15,16 +15,10 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.RuntimeEnv; import org.b3log.latke.RuntimeEnv;
import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
import org.b3log.latke.model.Pagination; import org.b3log.latke.model.Pagination;
import org.b3log.latke.model.User; import org.b3log.latke.model.User;
...@@ -43,14 +37,17 @@ import org.b3log.solo.model.Article; ...@@ -43,14 +37,17 @@ import org.b3log.solo.model.Article;
import org.b3log.solo.model.Option; import org.b3log.solo.model.Option;
import org.b3log.solo.model.Statistic; import org.b3log.solo.model.Statistic;
import org.b3log.solo.model.Tag; import org.b3log.solo.model.Tag;
import org.b3log.solo.service.ArticleQueryService; import org.b3log.solo.service.*;
import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.service.StatisticQueryService;
import org.b3log.solo.service.TagQueryService;
import org.b3log.solo.service.UserQueryService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.URL;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/** /**
* Blog processor. * Blog processor.
* *
......
...@@ -16,19 +16,6 @@ ...@@ -16,19 +16,6 @@
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.util.Enumeration;
import java.util.Random;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.RuntimeEnv; import org.b3log.latke.RuntimeEnv;
...@@ -44,6 +31,16 @@ import org.b3log.latke.servlet.annotation.RequestProcessor; ...@@ -44,6 +31,16 @@ import org.b3log.latke.servlet.annotation.RequestProcessor;
import org.b3log.latke.servlet.renderer.PNGRenderer; import org.b3log.latke.servlet.renderer.PNGRenderer;
import org.b3log.solo.SoloServletListener; import org.b3log.solo.SoloServletListener;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.net.URL;
import java.util.Enumeration;
import java.util.Random;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/** /**
* Captcha processor. * Captcha processor.
...@@ -112,7 +109,7 @@ public class CaptchaProcessor { ...@@ -112,7 +109,7 @@ public class CaptchaProcessor {
final HttpSession httpSession = request.getSession(false); final HttpSession httpSession = request.getSession(false);
if (null != httpSession) { if (null != httpSession) {
LOGGER.log(Level.DEBUG, "Captcha[{0}] for session[id={1}]", new Object[] {captcha, httpSession.getId()}); LOGGER.log(Level.DEBUG, "Captcha[{0}] for session[id={1}]", captcha, httpSession.getId());
httpSession.setAttribute(CAPTCHA, captcha); httpSession.setAttribute(CAPTCHA, captcha);
} }
......
/*
* Copyright (c) 2010-2017, b3log.org & hacpai.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.b3log.solo.processor;
import org.b3log.latke.Keys;
import org.b3log.latke.Latkes;
import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger;
import org.b3log.latke.model.Pagination;
import org.b3log.latke.service.LangPropsService;
import org.b3log.latke.service.ServiceException;
import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.HTTPRequestMethod;
import org.b3log.latke.servlet.annotation.RequestProcessing;
import org.b3log.latke.servlet.annotation.RequestProcessor;
import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer;
import org.b3log.latke.servlet.renderer.freemarker.FreeMarkerRenderer;
import org.b3log.latke.util.Requests;
import org.b3log.latke.util.Strings;
import org.b3log.solo.model.Article;
import org.b3log.solo.model.Category;
import org.b3log.solo.model.Common;
import org.b3log.solo.model.Option;
import org.b3log.solo.processor.util.Filler;
import org.b3log.solo.service.*;
import org.b3log.solo.util.Skins;
import org.json.JSONException;
import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
/**
* Category processor.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.2, Apr 10, 2017
* @since 2.0.0
*/
@RequestProcessor
public class CategoryProcessor {
/**
* Logger.
*/
private static final Logger LOGGER = Logger.getLogger(CategoryProcessor.class);
/**
* Filler.
*/
@Inject
private Filler filler;
/**
* Language service.
*/
@Inject
private LangPropsService langPropsService;
/**
* Preference query service.
*/
@Inject
private PreferenceQueryService preferenceQueryService;
/**
* Article query service.
*/
@Inject
private ArticleQueryService articleQueryService;
/**
* User query service.
*/
@Inject
private UserQueryService userQueryService;
/**
* Category query service.
*/
@Inject
private CategoryQueryService categoryQueryService;
/**
* Statistic management service.
*/
@Inject
private StatisticMgmtService statisticMgmtService;
/**
* Gets the request page number from the specified request URI and category URI.
*
* @param requestURI the specified request URI
* @param categoryURI the specified category URI
* @return page number, returns {@code -1} if the specified request URI can not convert to an number
*/
private static int getCurrentPageNum(final String requestURI, final String categoryURI) {
if (Strings.isEmptyOrNull(categoryURI)) {
return -1;
}
final String pageNumString = requestURI.substring((Latkes.getContextPath() + "/category/" + categoryURI + "/").length());
return Requests.getCurrentPageNum(pageNumString);
}
/**
* Gets category URI from the specified URI.
*
* @param requestURI the specified request URI
* @return category URI
*/
private static String getCategoryURI(final String requestURI) {
final String path = requestURI.substring((Latkes.getContextPath() + "/category/").length());
if (path.contains("/")) {
return path.substring(0, path.indexOf("/"));
} else {
return path.substring(0);
}
}
/**
* Shows articles related with a category with the specified context.
*
* @param context the specified context
* @throws IOException io exception
*/
@RequestProcessing(value = "/category/**", method = HTTPRequestMethod.GET)
public void showCategoryArticles(final HTTPRequestContext context) throws IOException {
final AbstractFreeMarkerRenderer renderer = new FreeMarkerRenderer();
context.setRenderer(renderer);
renderer.setTemplateName("category-articles.ftl");
final Map<String, Object> dataModel = renderer.getDataModel();
final HttpServletRequest request = context.getRequest();
final HttpServletResponse response = context.getResponse();
try {
String requestURI = request.getRequestURI();
if (!requestURI.endsWith("/")) {
requestURI += "/";
}
String categoryURI = getCategoryURI(requestURI);
final int currentPageNum = getCurrentPageNum(requestURI, categoryURI);
if (-1 == currentPageNum) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
LOGGER.log(Level.DEBUG, "Category [URI={0}, currentPageNum={1}]", categoryURI, currentPageNum);
categoryURI = URLDecoder.decode(categoryURI, "UTF-8");
final JSONObject category = categoryQueryService.getByURI(categoryURI);
if (null == category) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
dataModel.put(Category.CATEGORY, category);
final JSONObject preference = preferenceQueryService.getPreference();
final int pageSize = preference.getInt(Option.ID_C_ARTICLE_LIST_DISPLAY_COUNT);
final String categoryId = category.optString(Keys.OBJECT_ID);
final JSONObject result = articleQueryService.getCategoryArticles(categoryId, currentPageNum, pageSize);
final List<JSONObject> articles = (List<JSONObject>) result.opt(Article.ARTICLES);
Skins.fillLangs(preference.optString(Option.ID_C_LOCALE_STRING), (String) request.getAttribute(Keys.TEMAPLTE_DIR_NAME), dataModel);
final boolean hasMultipleUsers = userQueryService.hasMultipleUsers();
if (hasMultipleUsers) {
filler.setArticlesExProperties(request, articles, preference);
} else {
// All articles composed by the same author
final JSONObject author = articleQueryService.getAuthor(articles.get(0));
filler.setArticlesExProperties(request, articles, author, preference);
}
final int pageCount = result.optJSONObject(Pagination.PAGINATION).optInt(Pagination.PAGINATION_PAGE_COUNT);
if (0 == pageCount) {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
}
final List<Integer> pageNums = (List) result.optJSONObject(Pagination.PAGINATION).opt(Pagination.PAGINATION_PAGE_NUMS);
fillPagination(dataModel, pageCount, currentPageNum, articles, pageNums);
dataModel.put(Common.PATH, "/category/" + URLEncoder.encode(categoryURI, "UTF-8"));
filler.fillSide(request, dataModel, preference);
filler.fillBlogHeader(request, response, dataModel, preference);
filler.fillBlogFooter(request, dataModel, preference);
statisticMgmtService.incBlogViewCount(request, response);
} catch (final ServiceException | JSONException e) {
LOGGER.log(Level.ERROR, e.getMessage(), e);
try {
response.sendError(HttpServletResponse.SC_NOT_FOUND);
} catch (final IOException ex) {
LOGGER.error(ex.getMessage());
}
}
}
/**
* Fills pagination.
*
* @param dataModel the specified data model
* @param pageCount the specified page count
* @param currentPageNum the specified current page number
* @param articles the specified articles
* @param pageNums the specified page numbers
*/
private void fillPagination(final Map<String, Object> dataModel,
final int pageCount, final int currentPageNum,
final List<JSONObject> articles,
final List<Integer> pageNums) {
final String previousPageNum = Integer.toString(currentPageNum > 1 ? currentPageNum - 1 : 0);
dataModel.put(Pagination.PAGINATION_PREVIOUS_PAGE_NUM, "0".equals(previousPageNum) ? "" : previousPageNum);
if (pageCount == currentPageNum + 1) { // The next page is the last page
dataModel.put(Pagination.PAGINATION_NEXT_PAGE_NUM, "");
} else {
dataModel.put(Pagination.PAGINATION_NEXT_PAGE_NUM, currentPageNum + 1);
}
dataModel.put(Article.ARTICLES, articles);
dataModel.put(Pagination.PAGINATION_CURRENT_PAGE_NUM, currentPageNum);
dataModel.put(Pagination.PAGINATION_FIRST_PAGE_NUM, pageNums.get(0));
dataModel.put(Pagination.PAGINATION_LAST_PAGE_NUM, pageNums.get(pageNums.size() - 1));
dataModel.put(Pagination.PAGINATION_PAGE_COUNT, pageCount);
dataModel.put(Pagination.PAGINATION_PAGE_NUMS, pageNums);
}
}
...@@ -18,6 +18,7 @@ package org.b3log.solo.processor; ...@@ -18,6 +18,7 @@ package org.b3log.solo.processor;
import freemarker.template.Template; import freemarker.template.Template;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -37,7 +38,6 @@ import org.b3log.solo.service.UserQueryService; ...@@ -37,7 +38,6 @@ import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.Skins; import org.b3log.solo.util.Skins;
import org.json.JSONObject; import org.json.JSONObject;
import javax.inject.Inject;
import javax.servlet.ServletException; import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
......
...@@ -15,12 +15,8 @@ ...@@ -15,12 +15,8 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -37,6 +33,11 @@ import org.b3log.solo.processor.util.Filler; ...@@ -37,6 +33,11 @@ import org.b3log.solo.processor.util.Filler;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
/** /**
* Error processor. * Error processor.
* *
...@@ -90,7 +91,7 @@ public class ErrorProcessor { ...@@ -90,7 +91,7 @@ public class ErrorProcessor {
String templateName = StringUtils.substringAfterLast(requestURI, "/"); String templateName = StringUtils.substringAfterLast(requestURI, "/");
templateName = StringUtils.substringBefore(templateName, ".") + ".ftl"; templateName = StringUtils.substringBefore(templateName, ".") + ".ftl";
LOGGER.log(Level.DEBUG, "Shows error page[requestURI={0}, templateName={1}]", new Object[]{requestURI, templateName}); LOGGER.log(Level.DEBUG, "Shows error page[requestURI={0}, templateName={1}]", requestURI, templateName);
final ConsoleRenderer renderer = new ConsoleRenderer(); final ConsoleRenderer renderer = new ConsoleRenderer();
......
...@@ -15,26 +15,14 @@ ...@@ -15,26 +15,14 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringEscapeUtils; import org.apache.commons.lang.StringEscapeUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.ioc.inject.Inject;
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;
import org.b3log.latke.repository.CompositeFilter; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.CompositeFilterOperator;
import org.b3log.latke.repository.Filter;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.servlet.HTTPRequestContext; import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.HTTPRequestMethod; import org.b3log.latke.servlet.HTTPRequestMethod;
import org.b3log.latke.servlet.annotation.RequestProcessing; import org.b3log.latke.servlet.annotation.RequestProcessing;
...@@ -61,6 +49,13 @@ import org.b3log.solo.service.UserQueryService; ...@@ -61,6 +49,13 @@ import org.b3log.solo.service.UserQueryService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/** /**
* Feed (Atom/RSS) processor. * Feed (Atom/RSS) processor.
* *
......
...@@ -16,16 +16,9 @@ ...@@ -16,16 +16,9 @@
package org.b3log.solo.processor; package org.b3log.solo.processor;
import freemarker.template.Template; import freemarker.template.Template;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.Pagination; import org.b3log.latke.model.Pagination;
...@@ -52,6 +45,14 @@ import org.b3log.solo.service.StatisticMgmtService; ...@@ -52,6 +45,14 @@ import org.b3log.solo.service.StatisticMgmtService;
import org.b3log.solo.util.Skins; import org.b3log.solo.util.Skins;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Map;
/** /**
* Index processor. * Index processor.
* *
......
...@@ -15,14 +15,9 @@ ...@@ -15,14 +15,9 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.util.Calendar;
import java.util.Locale;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.ioc.inject.Inject;
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.Role; import org.b3log.latke.model.Role;
...@@ -48,6 +43,12 @@ import org.b3log.solo.util.QueryResults; ...@@ -48,6 +43,12 @@ import org.b3log.solo.util.QueryResults;
import org.b3log.solo.util.Thumbnails; import org.b3log.solo.util.Thumbnails;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Calendar;
import java.util.Locale;
import java.util.Map;
/** /**
* Solo initialization service. * Solo initialization service.
* *
......
...@@ -18,6 +18,7 @@ package org.b3log.solo.processor; ...@@ -18,6 +18,7 @@ package org.b3log.solo.processor;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -51,7 +52,6 @@ import org.b3log.solo.util.Randoms; ...@@ -51,7 +52,6 @@ import org.b3log.solo.util.Randoms;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
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 java.io.IOException; import java.io.IOException;
...@@ -367,7 +367,7 @@ public class LoginProcessor { ...@@ -367,7 +367,7 @@ public class LoginProcessor {
user.put(User.USER_PASSWORD, newPwd); user.put(User.USER_PASSWORD, newPwd);
userMgmtService.updateUser(user); userMgmtService.updateUser(user);
LOGGER.log(Level.DEBUG, "[{0}]'s password updated successfully.", new Object[] {userEmail}); LOGGER.log(Level.DEBUG, "[{0}]'s password updated successfully.", userEmail);
jsonObject.put("succeed", true); jsonObject.put("succeed", true);
jsonObject.put("to", Latkes.getServePath() + "/login?from=reset"); jsonObject.put("to", Latkes.getServePath() + "/login?from=reset");
...@@ -428,7 +428,7 @@ public class LoginProcessor { ...@@ -428,7 +428,7 @@ public class LoginProcessor {
jsonObject.put("to", Latkes.getServePath() + "/login?from=forgot"); jsonObject.put("to", Latkes.getServePath() + "/login?from=forgot");
jsonObject.put(Keys.MSG, langPropsService.get("resetPwdSuccessSend")); jsonObject.put(Keys.MSG, langPropsService.get("resetPwdSuccessSend"));
LOGGER.log(Level.DEBUG, "Sent a mail[mailSubject={0}, mailBody=[{1}] to [{2}]", new Object[] {mailSubject, mailBody, userEmail}); LOGGER.log(Level.DEBUG, "Sent a mail[mailSubject={0}, mailBody=[{1}] to [{2}]", mailSubject, mailBody, userEmail);
} }
/** /**
......
...@@ -15,14 +15,8 @@ ...@@ -15,14 +15,8 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -45,6 +39,12 @@ import org.b3log.solo.util.Markdowns; ...@@ -45,6 +39,12 @@ import org.b3log.solo.util.Markdowns;
import org.b3log.solo.util.Skins; import org.b3log.solo.util.Skins;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;
/** /**
* Page processor. * Page processor.
* *
......
...@@ -15,22 +15,19 @@ ...@@ -15,22 +15,19 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutionException;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.ioc.LatkeBeanManager; import org.b3log.latke.ioc.LatkeBeanManager;
import org.b3log.latke.ioc.inject.Inject;
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;
import org.b3log.latke.mail.MailService.Message; import org.b3log.latke.mail.MailService.Message;
import org.b3log.latke.mail.MailServiceFactory; import org.b3log.latke.mail.MailServiceFactory;
import org.b3log.latke.repository.*; import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.Repositories;
import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.Transaction;
import org.b3log.latke.repository.annotation.Transactional; import org.b3log.latke.repository.annotation.Transactional;
import org.b3log.latke.servlet.HTTPRequestContext; import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.HTTPRequestMethod; import org.b3log.latke.servlet.HTTPRequestMethod;
...@@ -38,22 +35,14 @@ import org.b3log.latke.servlet.annotation.RequestProcessing; ...@@ -38,22 +35,14 @@ import org.b3log.latke.servlet.annotation.RequestProcessing;
import org.b3log.latke.servlet.annotation.RequestProcessor; import org.b3log.latke.servlet.annotation.RequestProcessor;
import org.b3log.latke.servlet.renderer.TextHTMLRenderer; import org.b3log.latke.servlet.renderer.TextHTMLRenderer;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.*; import org.b3log.solo.model.Article;
import org.b3log.solo.model.Option;
import org.b3log.solo.model.Statistic;
import org.b3log.solo.model.Tag;
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.*;
import org.b3log.solo.repository.impl.ArchiveDateRepositoryImpl;
import org.b3log.solo.repository.impl.ArticleRepositoryImpl;
import org.b3log.solo.repository.impl.CommentRepositoryImpl;
import org.b3log.solo.repository.impl.LinkRepositoryImpl;
import org.b3log.solo.repository.impl.OptionRepositoryImpl;
import org.b3log.solo.repository.impl.PageRepositoryImpl;
import org.b3log.solo.repository.impl.PluginRepositoryImpl;
import org.b3log.solo.repository.impl.StatisticRepositoryImpl;
import org.b3log.solo.repository.impl.TagArticleRepositoryImpl;
import org.b3log.solo.repository.impl.TagRepositoryImpl;
import org.b3log.solo.repository.impl.UserRepositoryImpl;
import org.b3log.solo.service.PreferenceMgmtService; import org.b3log.solo.service.PreferenceMgmtService;
import org.b3log.solo.service.PreferenceQueryService; import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.service.StatisticMgmtService; import org.b3log.solo.service.StatisticMgmtService;
...@@ -61,6 +50,13 @@ import org.b3log.solo.service.StatisticQueryService; ...@@ -61,6 +50,13 @@ import org.b3log.solo.service.StatisticQueryService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Set;
import java.util.concurrent.ExecutionException;
/** /**
* Provides patches on some special issues. * Provides patches on some special issues.
* *
...@@ -163,7 +159,7 @@ public class RepairProcessor { ...@@ -163,7 +159,7 @@ public class RepairProcessor {
final JSONObject article = articles.getJSONObject(i); final JSONObject article = articles.getJSONObject(i);
final JSONArray names = article.names(); final JSONArray names = article.names();
final Set<String> nameSet = CollectionUtils.<String>jsonArrayToSet(names); final Set<String> nameSet = CollectionUtils.jsonArrayToSet(names);
if (nameSet.removeAll(keyNames)) { if (nameSet.removeAll(keyNames)) {
for (final String unusedName : nameSet) { for (final String unusedName : nameSet) {
...@@ -172,7 +168,7 @@ public class RepairProcessor { ...@@ -172,7 +168,7 @@ public class RepairProcessor {
articleRepository.update(article.getString(Keys.OBJECT_ID), article); articleRepository.update(article.getString(Keys.OBJECT_ID), article);
LOGGER.log(Level.INFO, "Found an article[id={0}] exists unused properties[{1}]", LOGGER.log(Level.INFO, "Found an article[id={0}] exists unused properties[{1}]",
new Object[]{article.getString(Keys.OBJECT_ID), nameSet}); article.getString(Keys.OBJECT_ID), nameSet);
} }
} }
...@@ -315,7 +311,7 @@ public class RepairProcessor { ...@@ -315,7 +311,7 @@ public class RepairProcessor {
tagRepository.update(tagId, tag); tagRepository.update(tagId, tag);
LOGGER.log(Level.INFO, "Repaired tag[title={0}, refCnt={1}, publishedTagRefCnt={2}]", LOGGER.log(Level.INFO, "Repaired tag[title={0}, refCnt={1}, publishedTagRefCnt={2}]",
new Object[]{tag.getString(Tag.TAG_TITLE), tagRefCnt, publishedTagRefCnt}); tag.getString(Tag.TAG_TITLE), tagRefCnt, publishedTagRefCnt);
} }
renderer.setContent("Repair sucessfully!"); renderer.setContent("Repair sucessfully!");
......
...@@ -16,14 +16,10 @@ ...@@ -16,14 +16,10 @@
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import javax.inject.Inject;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.ioc.inject.Inject;
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.repository.FilterOperator; import org.b3log.latke.repository.FilterOperator;
...@@ -49,6 +45,11 @@ import org.b3log.solo.service.PreferenceQueryService; ...@@ -49,6 +45,11 @@ import org.b3log.solo.service.PreferenceQueryService;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
/** /**
* Site map (sitemap) processor. * Site map (sitemap) processor.
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
package org.b3log.solo.processor; package org.b3log.solo.processor;
import javax.inject.Inject; import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
import org.b3log.latke.servlet.HTTPRequestContext; import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.HTTPRequestMethod; import org.b3log.latke.servlet.HTTPRequestMethod;
...@@ -64,6 +64,6 @@ public class StatProcessor { ...@@ -64,6 +64,6 @@ public class StatProcessor {
public void onlineVisitorCountRefresher(final HTTPRequestContext context) { public void onlineVisitorCountRefresher(final HTTPRequestContext context) {
context.setRenderer(new DoNothingRenderer()); context.setRenderer(new DoNothingRenderer());
statisticMgmtService.removeExpiredOnlineVisitor(); StatisticMgmtService.removeExpiredOnlineVisitor();
} }
} }
...@@ -15,17 +15,9 @@ ...@@ -15,17 +15,9 @@
*/ */
package org.b3log.solo.processor; package org.b3log.solo.processor;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.ioc.inject.Inject;
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.Pagination; import org.b3log.latke.model.Pagination;
...@@ -45,16 +37,21 @@ import org.b3log.solo.model.Common; ...@@ -45,16 +37,21 @@ import org.b3log.solo.model.Common;
import org.b3log.solo.model.Option; import org.b3log.solo.model.Option;
import org.b3log.solo.model.Tag; import org.b3log.solo.model.Tag;
import org.b3log.solo.processor.util.Filler; import org.b3log.solo.processor.util.Filler;
import org.b3log.solo.service.ArticleQueryService; import org.b3log.solo.service.*;
import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.service.StatisticMgmtService;
import org.b3log.solo.service.TagQueryService;
import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.Skins; import org.b3log.solo.util.Skins;
import org.b3log.solo.util.comparator.Comparators; import org.b3log.solo.util.comparator.Comparators;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Collections;
import java.util.List;
import java.util.Map;
/** /**
* Tag processor. * Tag processor.
* *
...@@ -145,7 +142,7 @@ public class TagProcessor { ...@@ -145,7 +142,7 @@ public class TagProcessor {
return; return;
} }
LOGGER.log(Level.DEBUG, "Tag[title={0}, currentPageNum={1}]", new Object[]{tagTitle, currentPageNum}); LOGGER.log(Level.DEBUG, "Tag[title={0}, currentPageNum={1}]", tagTitle, currentPageNum);
tagTitle = URLDecoder.decode(tagTitle, "UTF-8"); tagTitle = URLDecoder.decode(tagTitle, "UTF-8");
final JSONObject result = tagQueryService.getTagByTitle(tagTitle); final JSONObject result = tagQueryService.getTagByTitle(tagTitle);
...@@ -191,7 +188,7 @@ public class TagProcessor { ...@@ -191,7 +188,7 @@ public class TagProcessor {
final int pageCount = (int) Math.ceil((double) tagArticleCount / (double) pageSize); final int pageCount = (int) Math.ceil((double) tagArticleCount / (double) pageSize);
LOGGER.log(Level.TRACE, "Paginate tag-articles[currentPageNum={0}, pageSize={1}, pageCount={2}, windowSize={3}]", LOGGER.log(Level.TRACE, "Paginate tag-articles[currentPageNum={0}, pageSize={1}, pageCount={2}, windowSize={3}]",
new Object[]{currentPageNum, pageSize, pageCount, windowSize}); currentPageNum, pageSize, pageCount, windowSize);
final List<Integer> pageNums = Paginator.paginate(currentPageNum, pageSize, pageCount, windowSize); final List<Integer> pageNums = Paginator.paginate(currentPageNum, pageSize, pageCount, windowSize);
LOGGER.log(Level.TRACE, "tag-articles[pageNums={0}]", pageNums); LOGGER.log(Level.TRACE, "tag-articles[pageNums={0}]", pageNums);
......
...@@ -17,13 +17,9 @@ package org.b3log.solo.processor; ...@@ -17,13 +17,9 @@ package org.b3log.solo.processor;
import freemarker.template.Template; import freemarker.template.Template;
import java.io.IOException;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -42,6 +38,11 @@ import org.b3log.solo.service.StatisticMgmtService; ...@@ -42,6 +38,11 @@ import org.b3log.solo.service.StatisticMgmtService;
import org.b3log.solo.util.Skins; import org.b3log.solo.util.Skins;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
/** /**
* User template processor. * User template processor.
...@@ -105,7 +106,7 @@ public class UserTemplateProcessor { ...@@ -105,7 +106,7 @@ public class UserTemplateProcessor {
String templateName = StringUtils.substringAfterLast(requestURI, "/"); String templateName = StringUtils.substringAfterLast(requestURI, "/");
templateName = StringUtils.substringBefore(templateName, ".") + ".ftl"; templateName = StringUtils.substringBefore(templateName, ".") + ".ftl";
LOGGER.log(Level.DEBUG, "Shows page[requestURI={0}, templateName={1}]", new Object[] {requestURI, templateName}); LOGGER.log(Level.DEBUG, "Shows page[requestURI={0}, templateName={1}]", requestURI, templateName);
final AbstractFreeMarkerRenderer renderer = new FreeMarkerRenderer(); final AbstractFreeMarkerRenderer renderer = new FreeMarkerRenderer();
......
...@@ -16,19 +16,6 @@ ...@@ -16,19 +16,6 @@
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import com.qiniu.util.Auth; import com.qiniu.util.Auth;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.Calendar;
import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import java.util.UUID;
import javax.inject.Inject;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jodd.io.ZipUtil; import jodd.io.ZipUtil;
import org.apache.commons.io.IOUtils; import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -38,6 +25,7 @@ import org.b3log.latke.RuntimeDatabase; ...@@ -38,6 +25,7 @@ import org.b3log.latke.RuntimeDatabase;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException; import org.b3log.latke.event.EventException;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
import org.b3log.latke.ioc.inject.Inject;
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.Plugin; import org.b3log.latke.model.Plugin;
...@@ -65,11 +53,20 @@ import org.b3log.solo.service.UserQueryService; ...@@ -65,11 +53,20 @@ import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.Thumbnails; import org.b3log.solo.util.Thumbnails;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.*;
/** /**
* Admin console render processing. * Admin console render processing.
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.3.2.10, Nov 15, 2016 * @version 1.3.2.11, Mar 31, 2017
* @since 0.4.1 * @since 0.4.1
*/ */
@RequestProcessor @RequestProcessor
...@@ -208,20 +205,20 @@ public class AdminConsole { ...@@ -208,20 +205,20 @@ public class AdminConsole {
* @param context the specified context * @param context the specified context
*/ */
@RequestProcessing(value = {"/admin-article.do", @RequestProcessing(value = {"/admin-article.do",
"/admin-article-list.do", "/admin-article-list.do",
"/admin-comment-list.do", "/admin-comment-list.do",
"/admin-link-list.do", "/admin-link-list.do",
"/admin-page-list.do", "/admin-page-list.do",
"/admin-others.do", "/admin-others.do",
"/admin-draft-list.do", "/admin-draft-list.do",
"/admin-user-list.do", "/admin-user-list.do",
"/admin-plugin-list.do", "/admin-category-list.do",
"/admin-main.do", "/admin-plugin-list.do",
"/admin-about.do"}, "/admin-main.do",
"/admin-about.do"},
method = HTTPRequestMethod.GET) method = HTTPRequestMethod.GET)
public void showAdminFunctions(final HttpServletRequest request, final HTTPRequestContext context) { public void showAdminFunctions(final HttpServletRequest request, final HTTPRequestContext context) {
final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer(); final AbstractFreeMarkerRenderer renderer = new ConsoleRenderer();
context.setRenderer(renderer); context.setRenderer(renderer);
final String requestURI = request.getRequestURI(); final String requestURI = request.getRequestURI();
...@@ -235,11 +232,8 @@ public class AdminConsole { ...@@ -235,11 +232,8 @@ public class AdminConsole {
final Map<String, Object> dataModel = renderer.getDataModel(); final Map<String, Object> dataModel = renderer.getDataModel();
dataModel.put("isMySQL", RuntimeDatabase.MYSQL == Latkes.getRuntimeDatabase()); dataModel.put("isMySQL", RuntimeDatabase.MYSQL == Latkes.getRuntimeDatabase());
dataModel.putAll(langs); dataModel.putAll(langs);
Keys.fillRuntime(dataModel); Keys.fillRuntime(dataModel);
dataModel.put(Option.ID_C_LOCALE_STRING, locale.toString()); dataModel.put(Option.ID_C_LOCALE_STRING, locale.toString());
fireFreeMarkerActionEvent(templateName, dataModel); fireFreeMarkerActionEvent(templateName, dataModel);
...@@ -300,9 +294,9 @@ public class AdminConsole { ...@@ -300,9 +294,9 @@ public class AdminConsole {
/** /**
* Exports data as SQL file. * Exports data as SQL file.
* *
* @param request the specified HTTP servlet request * @param request the specified HTTP servlet request
* @param response the specified HTTP servlet response * @param response the specified HTTP servlet response
* @param context the specified HTTP request context * @param context the specified HTTP request context
* @throws Exception exception * @throws Exception exception
*/ */
@RequestProcessing(value = "/console/export/sql", method = HTTPRequestMethod.GET) @RequestProcessing(value = "/console/export/sql", method = HTTPRequestMethod.GET)
...@@ -377,7 +371,7 @@ public class AdminConsole { ...@@ -377,7 +371,7 @@ public class AdminConsole {
* Fires FreeMarker action event with the host template name and data model. * Fires FreeMarker action event with the host template name and data model.
* *
* @param hostTemplateName the specified host template name * @param hostTemplateName the specified host template name
* @param dataModel the specified data model * @param dataModel the specified data model
*/ */
private void fireFreeMarkerActionEvent(final String hostTemplateName, final Map<String, Object> dataModel) { private void fireFreeMarkerActionEvent(final String hostTemplateName, final Map<String, Object> dataModel) {
try { try {
......
...@@ -15,12 +15,10 @@ ...@@ -15,12 +15,10 @@
*/ */
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.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -43,6 +41,9 @@ import org.b3log.solo.util.QueryResults; ...@@ -43,6 +41,9 @@ import org.b3log.solo.util.QueryResults;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* Article console request processing. * Article console request processing.
* *
...@@ -261,7 +262,7 @@ public class ArticleConsole { ...@@ -261,7 +262,7 @@ public class ArticleConsole {
path = path.substring((status + "/").length()); path = path.substring((status + "/").length());
final boolean published = "published".equals(status) ? true : false; final boolean published = "published".equals(status);
final JSONObject requestJSONObject = Requests.buildPaginationRequest(path); final JSONObject requestJSONObject = Requests.buildPaginationRequest(path);
......
...@@ -16,12 +16,9 @@ ...@@ -16,12 +16,9 @@
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import java.util.List;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -38,6 +35,10 @@ import org.b3log.solo.service.UserQueryService; ...@@ -38,6 +35,10 @@ import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.QueryResults; import org.b3log.solo.util.QueryResults;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/** /**
* Comment console request processing. * Comment console request processing.
......
...@@ -16,11 +16,9 @@ ...@@ -16,11 +16,9 @@
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.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.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -29,14 +27,17 @@ import org.b3log.latke.servlet.HTTPRequestMethod; ...@@ -29,14 +27,17 @@ import org.b3log.latke.servlet.HTTPRequestMethod;
import org.b3log.latke.servlet.annotation.RequestProcessing; import org.b3log.latke.servlet.annotation.RequestProcessing;
import org.b3log.latke.servlet.annotation.RequestProcessor; import org.b3log.latke.servlet.annotation.RequestProcessor;
import org.b3log.latke.servlet.renderer.JSONRenderer; import org.b3log.latke.servlet.renderer.JSONRenderer;
import org.b3log.latke.util.Requests;
import org.b3log.solo.model.Common; import org.b3log.solo.model.Common;
import org.b3log.solo.service.LinkMgmtService; import org.b3log.solo.service.LinkMgmtService;
import org.b3log.solo.service.LinkQueryService; import org.b3log.solo.service.LinkQueryService;
import org.b3log.solo.util.QueryResults;
import org.b3log.latke.util.Requests;
import org.b3log.solo.service.UserQueryService; import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.QueryResults;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* Link console request processing. * Link console request processing.
......
...@@ -16,11 +16,9 @@ ...@@ -16,11 +16,9 @@
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.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.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -40,6 +38,9 @@ import org.b3log.solo.util.QueryResults; ...@@ -40,6 +38,9 @@ import org.b3log.solo.util.QueryResults;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* Plugin console request processing. * Plugin console request processing.
......
...@@ -16,12 +16,9 @@ ...@@ -16,12 +16,9 @@
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
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.ioc.inject.Inject;
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.Plugin; import org.b3log.latke.model.Plugin;
...@@ -40,6 +37,10 @@ import org.b3log.solo.service.PluginQueryService; ...@@ -40,6 +37,10 @@ import org.b3log.solo.service.PluginQueryService;
import org.b3log.solo.util.QueryResults; import org.b3log.solo.util.QueryResults;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;
/** /**
* Plugin console request processing. * Plugin console request processing.
......
...@@ -15,12 +15,9 @@ ...@@ -15,12 +15,9 @@
*/ */
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import javax.inject.Inject;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -34,15 +31,15 @@ import org.b3log.latke.util.Requests; ...@@ -34,15 +31,15 @@ import org.b3log.latke.util.Requests;
import org.b3log.solo.model.Option; import org.b3log.solo.model.Option;
import org.b3log.solo.model.Sign; import org.b3log.solo.model.Sign;
import org.b3log.solo.model.Skin; import org.b3log.solo.model.Skin;
import org.b3log.solo.service.OptionMgmtService; import org.b3log.solo.service.*;
import org.b3log.solo.service.OptionQueryService;
import org.b3log.solo.service.PreferenceMgmtService;
import org.b3log.solo.service.PreferenceQueryService;
import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.QueryResults; import org.b3log.solo.util.QueryResults;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* Preference console request processing. * Preference console request processing.
* *
......
...@@ -16,13 +16,8 @@ ...@@ -16,13 +16,8 @@
package org.b3log.solo.processor.console; package org.b3log.solo.processor.console;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.service.LangPropsService; import org.b3log.latke.service.LangPropsService;
...@@ -38,6 +33,12 @@ import org.b3log.solo.service.TagQueryService; ...@@ -38,6 +33,12 @@ import org.b3log.solo.service.TagQueryService;
import org.b3log.solo.service.UserQueryService; import org.b3log.solo.service.UserQueryService;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
/** /**
* Tag console request processing. * Tag console request processing.
......
...@@ -15,11 +15,9 @@ ...@@ -15,11 +15,9 @@
*/ */
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.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.ioc.inject.Inject;
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.Role; import org.b3log.latke.model.Role;
...@@ -39,12 +37,15 @@ import org.b3log.solo.service.UserQueryService; ...@@ -39,12 +37,15 @@ import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.QueryResults; import org.b3log.solo.util.QueryResults;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/** /**
* User console request processing. * User console request processing.
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @author <a href="mailto:385321165@qq.com">DASHU</a> * @author <a href="mailto:385321165@qq.com">DASHU</a>
* @version 1.2.0.4, Nov 20, 2015 * @version 1.2.0.5, Mar 31, 2017
* @since 0.4.0 * @since 0.4.0
*/ */
@RequestProcessor @RequestProcessor
...@@ -81,7 +82,6 @@ public class UserConsole { ...@@ -81,7 +82,6 @@ public class UserConsole {
/** /**
* Updates a user by the specified request. * Updates a user by the specified request.
*
* <p> * <p>
* Renders the response with a json object, for example, * Renders the response with a json object, for example,
* <pre> * <pre>
...@@ -92,19 +92,15 @@ public class UserConsole { ...@@ -92,19 +92,15 @@ public class UserConsole {
* </pre> * </pre>
* </p> * </p>
* *
* @param request the specified http servlet request, for example, <pre> * @param request the specified http servlet request, for example,
* { * "oId": "",
* "oId": "", * "userName": "",
* "userName": "", * "userEmail": "",
* "userEmail": "", * "userPassword": "", // Unhashed
* "userPassword": "", // Unhashed * "userRole": "", // optional
* "userRole": "", // optional * "userURL": "", // optional
* "userURL": "", // optional * "userAvatar": "" // optional
* "userAvatar": "" // optional * @param context the specified http request context
* }
* </pre>
*
* @param context the specified http request context
* @param response the specified http servlet response * @param response the specified http servlet response
* @throws Exception exception * @throws Exception exception
*/ */
...@@ -143,7 +139,6 @@ public class UserConsole { ...@@ -143,7 +139,6 @@ public class UserConsole {
/** /**
* Adds a user with the specified request. * Adds a user with the specified request.
*
* <p> * <p>
* Renders the response with a json object, for example, * Renders the response with a json object, for example,
* <pre> * <pre>
...@@ -155,19 +150,15 @@ public class UserConsole { ...@@ -155,19 +150,15 @@ public class UserConsole {
* </pre> * </pre>
* </p> * </p>
* *
* @param request the specified http servlet request, for example, <pre> * @param request the specified http servlet request, for example,
* { * "userName": "",
* "userName": "", * "userEmail": "",
* "userEmail": "", * "userPassword": "",
* "userPassword": "", * "userURL": "", // optional, uses 'servePath' instead if not specified
* "userURL": "", // optional, uses 'servePath' instead if not specified * "userRole": "", // optional, uses {@value org.b3log.latke.model.Role#DEFAULT_ROLE} instead if not specified
* "userRole": "", // optional, uses {@value org.b3log.latke.model.Role#DEFAULT_ROLE} instead if not specified * "userAvatar": "" // optional
* "userAvatar": "" // optional
* }
* </pre>
*
* @param response the specified http servlet response * @param response the specified http servlet response
* @param context the specified http request context * @param context the specified http request context
* @throws Exception exception * @throws Exception exception
*/ */
@RequestProcessing(value = "/console/user/", method = HTTPRequestMethod.POST) @RequestProcessing(value = "/console/user/", method = HTTPRequestMethod.POST)
...@@ -218,7 +209,6 @@ public class UserConsole { ...@@ -218,7 +209,6 @@ public class UserConsole {
/** /**
* Removes a user by the specified request. * Removes a user by the specified request.
*
* <p> * <p>
* Renders the response with a json object, for example, * Renders the response with a json object, for example,
* <pre> * <pre>
...@@ -229,9 +219,9 @@ public class UserConsole { ...@@ -229,9 +219,9 @@ public class UserConsole {
* </pre> * </pre>
* </p> * </p>
* *
* @param request the specified http servlet request * @param request the specified http servlet request
* @param response the specified http servlet response * @param response the specified http servlet response
* @param context the specified http request context * @param context the specified http request context
* @throws Exception exception * @throws Exception exception
*/ */
@RequestProcessing(value = "/console/user/*", method = HTTPRequestMethod.DELETE) @RequestProcessing(value = "/console/user/*", method = HTTPRequestMethod.DELETE)
...@@ -243,16 +233,12 @@ public class UserConsole { ...@@ -243,16 +233,12 @@ public class UserConsole {
} }
final JSONRenderer renderer = new JSONRenderer(); final JSONRenderer renderer = new JSONRenderer();
context.setRenderer(renderer); context.setRenderer(renderer);
final JSONObject jsonObject = new JSONObject(); final JSONObject jsonObject = new JSONObject();
renderer.setJSONObject(jsonObject); renderer.setJSONObject(jsonObject);
try { try {
final String userId = request.getRequestURI().substring((Latkes.getContextPath() + "/console/user/").length()); final String userId = request.getRequestURI().substring((Latkes.getContextPath() + "/console/user/").length());
userMgmtService.removeUser(userId); userMgmtService.removeUser(userId);
jsonObject.put(Keys.STATUS_CODE, true); jsonObject.put(Keys.STATUS_CODE, true);
...@@ -271,7 +257,6 @@ public class UserConsole { ...@@ -271,7 +257,6 @@ public class UserConsole {
* The request URI contains the pagination arguments. For example, the request URI is /console/users/1/10/20, means * The request URI contains the pagination arguments. For example, the request URI is /console/users/1/10/20, means
* the current page is 1, the page size is 10, and the window size is 20. * the current page is 1, the page size is 10, and the window size is 20.
* </p> * </p>
*
* <p> * <p>
* Renders the response with a json object, for example, * Renders the response with a json object, for example,
* <pre> * <pre>
...@@ -287,21 +272,20 @@ public class UserConsole { ...@@ -287,21 +272,20 @@ public class UserConsole {
* "userPassword": "", * "userPassword": "",
* "roleName": "" * "roleName": ""
* }, ....] * }, ....]
* "sc": "GET_USERS_SUCC" * "sc": true
* } * }
* </pre> * </pre>
* </p> * </p>
* *
* @param request the specified http servlet request * @param request the specified http servlet request
* @param response the specified http servlet response * @param response the specified http servlet response
* @param context the specified http request context * @param context the specified http request context
* @throws Exception exception * @throws Exception exception
*/ */
@RequestProcessing(value = "/console/users/*/*/*"/* Requests.PAGINATION_PATH_PATTERN */, method = HTTPRequestMethod.GET) @RequestProcessing(value = "/console/users/*/*/*"/* Requests.PAGINATION_PATH_PATTERN */, method = HTTPRequestMethod.GET)
public void getUsers(final HttpServletRequest request, final HttpServletResponse response, final HTTPRequestContext context) public void getUsers(final HttpServletRequest request, final HttpServletResponse response, final HTTPRequestContext context)
throws Exception { throws Exception {
final JSONRenderer renderer = new JSONRenderer(); final JSONRenderer renderer = new JSONRenderer();
context.setRenderer(renderer); context.setRenderer(renderer);
if (!userQueryService.isAdminLoggedIn(request)) { if (!userQueryService.isAdminLoggedIn(request)) {
...@@ -316,15 +300,12 @@ public class UserConsole { ...@@ -316,15 +300,12 @@ public class UserConsole {
final JSONObject requestJSONObject = Requests.buildPaginationRequest(path); final JSONObject requestJSONObject = Requests.buildPaginationRequest(path);
final JSONObject result = userQueryService.getUsers(requestJSONObject); final JSONObject result = userQueryService.getUsers(requestJSONObject);
result.put(Keys.STATUS_CODE, true); result.put(Keys.STATUS_CODE, true);
renderer.setJSONObject(result); renderer.setJSONObject(result);
} catch (final ServiceException e) { } catch (final ServiceException e) {
LOGGER.log(Level.ERROR, e.getMessage(), e); LOGGER.log(Level.ERROR, e.getMessage(), e);
final JSONObject jsonObject = QueryResults.defaultResult(); final JSONObject jsonObject = QueryResults.defaultResult();
renderer.setJSONObject(jsonObject); renderer.setJSONObject(jsonObject);
jsonObject.put(Keys.MSG, langPropsService.get("getFailLabel")); jsonObject.put(Keys.MSG, langPropsService.get("getFailLabel"));
} }
...@@ -332,7 +313,6 @@ public class UserConsole { ...@@ -332,7 +313,6 @@ public class UserConsole {
/** /**
* Gets a user by the specified request. * Gets a user by the specified request.
*
* <p> * <p>
* Renders the response with a json object, for example, * Renders the response with a json object, for example,
* <pre> * <pre>
...@@ -349,9 +329,9 @@ public class UserConsole { ...@@ -349,9 +329,9 @@ public class UserConsole {
* </pre> * </pre>
* </p> * </p>
* *
* @param request the specified http servlet request * @param request the specified http servlet request
* @param response the specified http servlet response * @param response the specified http servlet response
* @param context the specified http request context * @param context the specified http request context
* @throws Exception exception * @throws Exception exception
*/ */
@RequestProcessing(value = "/console/user/*", method = HTTPRequestMethod.GET) @RequestProcessing(value = "/console/user/*", method = HTTPRequestMethod.GET)
...@@ -363,15 +343,12 @@ public class UserConsole { ...@@ -363,15 +343,12 @@ public class UserConsole {
} }
final JSONRenderer renderer = new JSONRenderer(); final JSONRenderer renderer = new JSONRenderer();
context.setRenderer(renderer); context.setRenderer(renderer);
try { try {
final String requestURI = request.getRequestURI(); final String requestURI = request.getRequestURI();
final String userId = requestURI.substring((Latkes.getContextPath() + "/console/user/").length()); final String userId = requestURI.substring((Latkes.getContextPath() + "/console/user/").length());
final JSONObject result = userQueryService.getUser(userId); final JSONObject result = userQueryService.getUser(userId);
if (null == result) { if (null == result) {
renderer.setJSONObject(QueryResults.defaultResult()); renderer.setJSONObject(QueryResults.defaultResult());
...@@ -380,12 +357,10 @@ public class UserConsole { ...@@ -380,12 +357,10 @@ public class UserConsole {
renderer.setJSONObject(result); renderer.setJSONObject(result);
result.put(Keys.STATUS_CODE, true); result.put(Keys.STATUS_CODE, true);
} catch (final ServiceException e) { } catch (final ServiceException e) {
LOGGER.log(Level.ERROR, e.getMessage(), e); LOGGER.log(Level.ERROR, e.getMessage(), e);
final JSONObject jsonObject = QueryResults.defaultResult(); final JSONObject jsonObject = QueryResults.defaultResult();
renderer.setJSONObject(jsonObject); renderer.setJSONObject(jsonObject);
jsonObject.put(Keys.MSG, langPropsService.get("getFailLabel")); jsonObject.put(Keys.MSG, langPropsService.get("getFailLabel"));
} }
...@@ -393,7 +368,6 @@ public class UserConsole { ...@@ -393,7 +368,6 @@ public class UserConsole {
/** /**
* Change a user role. * Change a user role.
*
* <p> * <p>
* Renders the response with a json object, for example, * Renders the response with a json object, for example,
* <pre> * <pre>
...@@ -404,9 +378,9 @@ public class UserConsole { ...@@ -404,9 +378,9 @@ public class UserConsole {
* </pre> * </pre>
* </p> * </p>
* *
* @param request the specified http servlet request * @param request the specified http servlet request
* @param response the specified http servlet response * @param response the specified http servlet response
* @param context the specified http request context * @param context the specified http request context
* @throws Exception exception * @throws Exception exception
*/ */
@RequestProcessing(value = "/console/changeRole/*", method = HTTPRequestMethod.GET) @RequestProcessing(value = "/console/changeRole/*", method = HTTPRequestMethod.GET)
...@@ -418,21 +392,16 @@ public class UserConsole { ...@@ -418,21 +392,16 @@ public class UserConsole {
} }
final JSONRenderer renderer = new JSONRenderer(); final JSONRenderer renderer = new JSONRenderer();
context.setRenderer(renderer); context.setRenderer(renderer);
final JSONObject jsonObject = new JSONObject(); final JSONObject jsonObject = new JSONObject();
renderer.setJSONObject(jsonObject); renderer.setJSONObject(jsonObject);
try { try {
final String userId = request.getRequestURI().substring((Latkes.getContextPath() + "/console/changeRole/").length()); final String userId = request.getRequestURI().substring((Latkes.getContextPath() + "/console/changeRole/").length());
userMgmtService.changeRole(userId); userMgmtService.changeRole(userId);
jsonObject.put(Keys.STATUS_CODE, true); jsonObject.put(Keys.STATUS_CODE, true);
jsonObject.put(Keys.MSG, langPropsService.get("updateSuccLabel")); jsonObject.put(Keys.MSG, langPropsService.get("updateSuccLabel"));
} catch (final ServiceException e) { } catch (final ServiceException e) {
LOGGER.log(Level.ERROR, e.getMessage(), e); LOGGER.log(Level.ERROR, e.getMessage(), e);
......
...@@ -15,22 +15,20 @@ ...@@ -15,22 +15,20 @@
*/ */
package org.b3log.solo.processor.console.common; package org.b3log.solo.processor.console.common;
import java.io.IOException;
import java.util.Map;
import javax.inject.Named;
import javax.inject.Singleton;
import javax.servlet.http.HttpServletResponse;
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.servlet.HTTPRequestContext; import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.advice.BeforeRequestProcessAdvice; import org.b3log.latke.servlet.advice.BeforeRequestProcessAdvice;
import org.b3log.latke.servlet.advice.RequestProcessAdviceException; import org.b3log.latke.servlet.advice.RequestProcessAdviceException;
import org.b3log.latke.servlet.advice.RequestReturnAdviceException; import org.b3log.latke.servlet.advice.RequestReturnAdviceException;
import org.b3log.solo.service.UserQueryService; import org.b3log.solo.service.UserQueryService;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
/** /**
* The common auth check before advice for admin console. * The common auth check before advice for admin console.
......
...@@ -18,13 +18,14 @@ package org.b3log.solo.processor.renderer; ...@@ -18,13 +18,14 @@ package org.b3log.solo.processor.renderer;
import freemarker.template.Configuration; import freemarker.template.Configuration;
import freemarker.template.Template; import freemarker.template.Template;
import freemarker.template.TemplateExceptionHandler; import freemarker.template.TemplateExceptionHandler;
import java.io.IOException;
import javax.servlet.ServletContext;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
import org.b3log.latke.servlet.HTTPRequestContext; import org.b3log.latke.servlet.HTTPRequestContext;
import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer; import org.b3log.latke.servlet.renderer.freemarker.AbstractFreeMarkerRenderer;
import org.b3log.solo.SoloServletListener; import org.b3log.solo.SoloServletListener;
import javax.servlet.ServletContext;
import java.io.IOException;
/** /**
* <a href="http://freemarker.org">FreeMarker</a> HTTP response renderer for administrator console and initialization * <a href="http://freemarker.org">FreeMarker</a> HTTP response renderer for administrator console and initialization
* rendering. * rendering.
......
...@@ -16,19 +16,18 @@ ...@@ -16,19 +16,18 @@
package org.b3log.solo.processor.util; package org.b3log.solo.processor.util;
import freemarker.template.TemplateMethodModel; import freemarker.template.TemplateMethodModelEx;
import freemarker.template.TemplateModelException; import freemarker.template.TemplateModelException;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.logging.Level;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
import org.b3log.latke.service.ServiceException;
import org.b3log.latke.service.annotation.Service; import org.b3log.latke.service.annotation.Service;
import org.b3log.solo.model.Tag; import org.b3log.solo.model.Tag;
import org.b3log.solo.service.ArticleQueryService; import org.b3log.solo.service.ArticleQueryService;
import org.b3log.solo.service.TagQueryService; import org.b3log.solo.service.TagQueryService;
import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import javax.inject.Inject;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -37,39 +36,37 @@ import java.util.List; ...@@ -37,39 +36,37 @@ import java.util.List;
* Fill tag articles. * Fill tag articles.
* *
* @author <a href="mailto:385321165@qq.com">DASHU</a> * @author <a href="mailto:385321165@qq.com">DASHU</a>
* @version 0.0.0.1, Jul 1, 2013 * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.0.0.2, Apr 12, 2017
* @since 0.6.1 * @since 0.6.1
*/ */
@Service @Service
public class FillTagArticles implements TemplateMethodModel { public class FillTagArticles implements TemplateMethodModelEx {
/** /**
* Logger. * Logger.
*/ */
private static final Logger LOGGER = Logger.getLogger(FillTagArticles.class.getName()); private static final Logger LOGGER = Logger.getLogger(FillTagArticles.class);
/**
* Arg size.
*/
private static final int ARG_SIZE = 3;
/** /**
* Tag query service. * Tag query service.
*/ */
@Inject @Inject
private TagQueryService tagQueryService; private TagQueryService tagQueryService;
/** /**
* Article query service. * Article query service.
*/ */
@Inject @Inject
private ArticleQueryService articleQueryService; private ArticleQueryService articleQueryService;
/**
* Arg size.
*/
private static final int ARG_SIZE = 3;
@Override @Override
public Object exec(final List arguments) throws TemplateModelException { public Object exec(final List arguments) throws TemplateModelException {
if (arguments.size() != ARG_SIZE) { if (arguments.size() != ARG_SIZE) {
LOGGER.debug("FillTagArticles with wrong arguments!"); LOGGER.debug("FillTagArticles with wrong arguments!");
throw new TemplateModelException("Wrong arguments!"); throw new TemplateModelException("Wrong arguments!");
} }
...@@ -78,9 +75,7 @@ public class FillTagArticles implements TemplateMethodModel { ...@@ -78,9 +75,7 @@ public class FillTagArticles implements TemplateMethodModel {
final int pageSize = Integer.parseInt((String) arguments.get(2)); final int pageSize = Integer.parseInt((String) arguments.get(2));
try { try {
final JSONObject result = tagQueryService.getTagByTitle(tagTitle); final JSONObject result = tagQueryService.getTagByTitle(tagTitle);
if (null == result) { if (null == result) {
return new ArrayList<JSONObject>(); return new ArrayList<JSONObject>();
} }
...@@ -88,14 +83,11 @@ public class FillTagArticles implements TemplateMethodModel { ...@@ -88,14 +83,11 @@ public class FillTagArticles implements TemplateMethodModel {
final JSONObject tag = result.getJSONObject(Tag.TAG); final JSONObject tag = result.getJSONObject(Tag.TAG);
final String tagId = tag.getString(Keys.OBJECT_ID); final String tagId = tag.getString(Keys.OBJECT_ID);
final List<JSONObject> list = articleQueryService.getArticlesByTag(tagId, currentPageNum, pageSize); final List<JSONObject> ret = articleQueryService.getArticlesByTag(tagId, currentPageNum, pageSize);
return list;
} catch (final ServiceException e) { return ret;
e.printStackTrace(); } catch (final Exception e) {
} catch (final JSONException e) { LOGGER.log(Level.ERROR, "Fill tag articles failed", e);
e.printStackTrace();
} }
return null; return null;
......
...@@ -18,14 +18,8 @@ package org.b3log.solo.processor.util; ...@@ -18,14 +18,8 @@ package org.b3log.solo.processor.util;
import freemarker.template.Template; import freemarker.template.Template;
import freemarker.template.TemplateException; import freemarker.template.TemplateException;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
import javax.inject.Inject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.Role; import org.b3log.latke.model.Role;
...@@ -45,6 +39,13 @@ import org.b3log.solo.service.UserQueryService; ...@@ -45,6 +39,13 @@ import org.b3log.solo.service.UserQueryService;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
/** /**
* Top bar utilities. * Top bar utilities.
...@@ -119,7 +120,7 @@ public class TopBars { ...@@ -119,7 +120,7 @@ public class TopBars {
topBarModel.put("mobileLabel", langPropsService.get("mobileLabel")); topBarModel.put("mobileLabel", langPropsService.get("mobileLabel"));
topBarModel.put("onlineVisitor1Label", langPropsService.get("onlineVisitor1Label")); topBarModel.put("onlineVisitor1Label", langPropsService.get("onlineVisitor1Label"));
topBarModel.put(Common.ONLINE_VISITOR_CNT, statisticQueryService.getOnlineVisitorCount()); topBarModel.put(Common.ONLINE_VISITOR_CNT, StatisticQueryService.getOnlineVisitorCount());
if (null == currentUser) { if (null == currentUser) {
topBarModel.put(Common.LOGIN_URL, userService.createLoginURL(Common.ADMIN_INDEX_URI)); topBarModel.put(Common.LOGIN_URL, userService.createLoginURL(Common.ADMIN_INDEX_URI));
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
package org.b3log.solo.repository; package org.b3log.solo.repository;
import java.util.List;
import org.b3log.latke.repository.Repository; import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Archive date repository. * Archive date repository.
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
package org.b3log.solo.repository; package org.b3log.solo.repository;
import java.util.List;
import org.b3log.latke.repository.Repository; import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Article repository. * Article repository.
......
/*
* Copyright (c) 2010-2017, b3log.org & hacpai.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.b3log.solo.repository;
import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject;
import java.util.List;
/**
* Category repository.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.2.0.1, Apr 8, 2017
* @since 2.0.0
*/
public interface CategoryRepository extends Repository {
/**
* Gets a category by the specified category title.
*
* @param categoryTitle the specified category title
* @return a category, {@code null} if not found
* @throws RepositoryException repository exception
*/
JSONObject getByTitle(final String categoryTitle) throws RepositoryException;
/**
* Gets a category by the specified category URI.
*
* @param categoryURI the specified category URI
* @return a category, {@code null} if not found
* @throws RepositoryException repository exception
*/
JSONObject getByURI(final String categoryURI) throws RepositoryException;
/**
* Gets the maximum order.
*
* @return order number, returns {@code -1} if not found
* @throws RepositoryException repository exception
*/
int getMaxOrder() throws RepositoryException;
/**
* Gets the upper category of the category specified by the given id.
*
* @param id the given id
* @return upper category, returns {@code null} if not found
* @throws RepositoryException repository exception
*/
JSONObject getUpper(final String id) throws RepositoryException;
/**
* Gets the under category of the category specified by the given id.
*
* @param id the given id
* @return under category, returns {@code null} if not found
* @throws RepositoryException repository exception
*/
JSONObject getUnder(final String id) throws RepositoryException;
/**
* Gets a category by the specified order.
*
* @param order the specified order
* @return category, returns {@code null} if not found
* @throws RepositoryException repository exception
*/
JSONObject getByOrder(final int order) throws RepositoryException;
/**
* Gets most used categories (contains the most tags) with the specified number.
*
* @param num the specified number
* @return a list of most used categories, returns an empty list if not found
* @throws RepositoryException repository exception
*/
List<JSONObject> getMostUsedCategories(final int num) throws RepositoryException;
}
/*
* Copyright (c) 2010-2017, b3log.org & hacpai.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.b3log.solo.repository;
import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject;
/**
* Category-Tag relation repository.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.1, Mar 31, 2017
* @since 2.0.0
*/
public interface CategoryTagRepository extends Repository {
/**
* Gets category-tag relations by the specified category id.
*
* @param categoryId the specified category id
* @param currentPageNum the specified current page number, MUST greater then {@code 0}
* @param pageSize the specified page size(count of a page contains objects), MUST greater then {@code 0}
* @return for example <pre>
* {
* "pagination": {
* "paginationPageCount": 88250
* },
* "rslts": [{
* "oId": "",
* "category_oId": categoryId,
* "tag_oId": ""
* }, ....]
* }
* </pre>
* @throws RepositoryException repository exception
*/
JSONObject getByCategoryId(final String categoryId, final int currentPageNum, final int pageSize)
throws RepositoryException;
/**
* Gets category-tag relations by the specified tag id.
*
* @param tagId the specified tag id
* @param currentPageNum the specified current page number, MUST greater then {@code 0}
* @param pageSize the specified page size(count of a page contains objects), MUST greater then {@code 0}
* @return for example <pre>
* {
* "pagination": {
* "paginationPageCount": 88250
* },
* "rslts": [{
* "oId": "",
* "category_oId": "",
* "tag_oId": tagId
* }, ....]
* }
* </pre>
* @throws RepositoryException repository exception
*/
JSONObject getByTagId(final String tagId, final int currentPageNum, final int pageSize)
throws RepositoryException;
/**
* Removes category-tag relations by the specified category id.
*
* @param categoryId the specified category id
* @throws RepositoryException repository exception
*/
void removeByCategoryId(final String categoryId) throws RepositoryException;
/**
* Removes category-tag relations by the specified tag id.
*
* @param tagId the specified tag id
* @throws RepositoryException repository exception
*/
void removeByTagId(final String tagId) throws RepositoryException;
}
...@@ -16,12 +16,12 @@ ...@@ -16,12 +16,12 @@
package org.b3log.solo.repository; package org.b3log.solo.repository;
import java.util.List;
import org.b3log.latke.repository.Repository; import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Comment repository. * Comment repository.
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
package org.b3log.solo.repository; package org.b3log.solo.repository;
import java.util.List;
import org.b3log.latke.repository.Repository; import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Page repository. * Page repository.
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
package org.b3log.solo.repository; package org.b3log.solo.repository;
import java.util.List;
import org.b3log.latke.repository.Repository; import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Tag-Article repository. * Tag-Article repository.
......
...@@ -16,11 +16,12 @@ ...@@ -16,11 +16,12 @@
package org.b3log.solo.repository; package org.b3log.solo.repository;
import java.util.List;
import org.b3log.latke.repository.Repository; import org.b3log.latke.repository.Repository;
import org.b3log.latke.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Tag repository. * Tag repository.
......
...@@ -17,15 +17,10 @@ package org.b3log.solo.repository.impl; ...@@ -17,15 +17,10 @@ package org.b3log.solo.repository.impl;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.solo.model.Article;
import org.b3log.solo.model.ArchiveDate; import org.b3log.solo.model.ArchiveDate;
import org.b3log.solo.model.Article;
import org.b3log.solo.repository.ArchiveDateArticleRepository; import org.b3log.solo.repository.ArchiveDateArticleRepository;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
......
...@@ -16,19 +16,11 @@ ...@@ -16,19 +16,11 @@
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import java.text.ParseException;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.time.DateUtils; import org.apache.commons.lang.time.DateUtils;
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;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.ArchiveDate; import org.b3log.solo.model.ArchiveDate;
...@@ -36,6 +28,10 @@ import org.b3log.solo.repository.ArchiveDateRepository; ...@@ -36,6 +28,10 @@ import org.b3log.solo.repository.ArchiveDateRepository;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import java.text.ParseException;
import java.util.Iterator;
import java.util.List;
/** /**
* Archive date repository. * Archive date repository.
...@@ -70,7 +66,7 @@ public class ArchiveDateRepositoryImpl extends AbstractRepository implements Arc ...@@ -70,7 +66,7 @@ public class ArchiveDateRepositoryImpl extends AbstractRepository implements Arc
throw new RepositoryException("Can not parse archive date [" + archiveDate + "]"); throw new RepositoryException("Can not parse archive date [" + archiveDate + "]");
} }
LOGGER.log(Level.TRACE, "Archive date [{0}] parsed to time [{1}]", new Object[] {archiveDate, time}); LOGGER.log(Level.TRACE, "Archive date [{0}] parsed to time [{1}]", archiveDate, time);
final Query query = new Query(); final Query query = new Query();
......
...@@ -15,19 +15,10 @@ ...@@ -15,19 +15,10 @@
*/ */
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
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;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.CompositeFilterOperator;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.Article; import org.b3log.solo.model.Article;
...@@ -36,6 +27,10 @@ import org.json.JSONArray; ...@@ -36,6 +27,10 @@ import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/** /**
* Article repository. * Article repository.
* *
...@@ -233,7 +228,7 @@ public class ArticleRepositoryImpl extends AbstractRepository implements Article ...@@ -233,7 +228,7 @@ public class ArticleRepositoryImpl extends AbstractRepository implements Article
final JSONObject result1 = get(query); final JSONObject result1 = get(query);
final JSONArray array1 = result1.optJSONArray(Keys.RESULTS); final JSONArray array1 = result1.optJSONArray(Keys.RESULTS);
final List<JSONObject> list1 = CollectionUtils.<JSONObject>jsonArrayToList(array1); final List<JSONObject> list1 = CollectionUtils.jsonArrayToList(array1);
ret.addAll(list1); ret.addAll(list1);
...@@ -252,7 +247,7 @@ public class ArticleRepositoryImpl extends AbstractRepository implements Article ...@@ -252,7 +247,7 @@ public class ArticleRepositoryImpl extends AbstractRepository implements Article
final JSONObject result2 = get(query); final JSONObject result2 = get(query);
final JSONArray array2 = result2.optJSONArray(Keys.RESULTS); final JSONArray array2 = result2.optJSONArray(Keys.RESULTS);
final List<JSONObject> list2 = CollectionUtils.<JSONObject>jsonArrayToList(array2); final List<JSONObject> list2 = CollectionUtils.jsonArrayToList(array2);
ret.addAll(list2); ret.addAll(list2);
} }
......
/*
* Copyright (c) 2010-2017, b3log.org & hacpai.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.b3log.solo.repository.impl;
import org.b3log.latke.Keys;
import org.b3log.latke.repository.*;
import org.b3log.latke.repository.annotation.Repository;
import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.Category;
import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.CategoryRepository;
import org.json.JSONArray;
import org.json.JSONObject;
import java.text.Collator;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/**
* Category repository.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.1, Apr 8, 2017
* @since 2.0.0
*/
@Repository
public class CategoryRepositoryImpl extends AbstractRepository implements CategoryRepository {
/**
* Public constructor.
*/
public CategoryRepositoryImpl() {
super(Category.CATEGORY);
}
@Override
public JSONObject getByTitle(final String categoryTitle) throws RepositoryException {
final Query query = new Query().
setFilter(new PropertyFilter(Category.CATEGORY_TITLE, FilterOperator.EQUAL, categoryTitle)).
setPageCount(1);
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
if (0 == array.length()) {
return null;
}
return array.optJSONObject(0);
}
@Override
public JSONObject getByURI(final String categoryURI) throws RepositoryException {
final Query query = new Query().
setFilter(new PropertyFilter(Category.CATEGORY_URI, FilterOperator.EQUAL, categoryURI)).
setPageCount(1);
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
if (0 == array.length()) {
return null;
}
return array.optJSONObject(0);
}
@Override
public int getMaxOrder() throws RepositoryException {
final Query query = new Query();
query.addSort(Category.CATEGORY_ORDER, SortDirection.DESCENDING);
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
if (0 == array.length()) {
return -1;
}
return array.optJSONObject(0).optInt(Category.CATEGORY_ORDER);
}
@Override
public JSONObject getByOrder(final int order) throws RepositoryException {
final Query query = new Query();
query.setFilter(new PropertyFilter(Category.CATEGORY_ORDER, FilterOperator.EQUAL, order));
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
if (0 == array.length()) {
return null;
}
return array.optJSONObject(0);
}
@Override
public List<JSONObject> getMostUsedCategories(final int num) throws RepositoryException {
final Query query = new Query().addSort(Category.CATEGORY_TAG_CNT, SortDirection.DESCENDING).
setCurrentPageNum(1).setPageSize(num).setPageCount(1);
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
final List<JSONObject> ret = CollectionUtils.jsonArrayToList(array);
sortJSONCategoryList(ret);
return ret;
}
@Override
public JSONObject getUpper(final String id) throws RepositoryException {
final JSONObject category = get(id);
if (null == category) {
return null;
}
final Query query = new Query();
query.setFilter(new PropertyFilter(Category.CATEGORY_ORDER, FilterOperator.LESS_THAN, category.optInt(Category.CATEGORY_ORDER))).
addSort(Category.CATEGORY_ORDER, SortDirection.DESCENDING);
query.setCurrentPageNum(1);
query.setPageSize(1);
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
if (1 != array.length()) {
return null;
}
return array.optJSONObject(0);
}
@Override
public JSONObject getUnder(final String id) throws RepositoryException {
final JSONObject category = get(id);
if (null == category) {
return null;
}
final Query query = new Query();
query.setFilter(new PropertyFilter(Category.CATEGORY_ORDER, FilterOperator.GREATER_THAN, category.optInt(Category.CATEGORY_ORDER))).
addSort(Category.CATEGORY_ORDER, SortDirection.ASCENDING);
query.setCurrentPageNum(1);
query.setPageSize(1);
final JSONObject result = get(query);
final JSONArray array = result.optJSONArray(Keys.RESULTS);
if (1 != array.length()) {
return null;
}
return array.optJSONObject(0);
}
private void sortJSONCategoryList(final List<JSONObject> tagJoList) {
Collections.sort(tagJoList, new Comparator<JSONObject>() {
@Override
public int compare(final JSONObject o1, final JSONObject o2) {
return Collator.getInstance(java.util.Locale.CHINA).
compare(o1.optString(Tag.TAG_TITLE), o2.optString(Tag.TAG_TITLE));
}
});
}
}
/*
* Copyright (c) 2010-2017, b3log.org & hacpai.com
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.b3log.solo.repository.impl;
import org.b3log.latke.Keys;
import org.b3log.latke.repository.*;
import org.b3log.latke.repository.annotation.Repository;
import org.b3log.solo.model.Category;
import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.CategoryTagRepository;
import org.json.JSONArray;
import org.json.JSONObject;
/**
* Category-Tag relation repository.
*
* @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 1.1.0.0, Mar 31, 2017
* @since 2.0.0
*/
@Repository
public class CategoryTagRepositoryImpl extends AbstractRepository implements CategoryTagRepository {
/**
* Public constructor.
*/
public CategoryTagRepositoryImpl() {
super(Category.CATEGORY + "_" + Tag.TAG);
}
@Override
public JSONObject getByCategoryId(final String categoryId, final int currentPageNum, final int pageSize)
throws RepositoryException {
final Query query = new Query().
setFilter(new PropertyFilter(Category.CATEGORY + "_" + Keys.OBJECT_ID, FilterOperator.EQUAL, categoryId)).
setCurrentPageNum(currentPageNum).setPageSize(pageSize).setPageCount(1);
return get(query);
}
@Override
public JSONObject getByTagId(final String tagId, final int currentPageNum, final int pageSize)
throws RepositoryException {
final Query query = new Query().
setFilter(new PropertyFilter(Tag.TAG + "_" + Keys.OBJECT_ID, FilterOperator.EQUAL, tagId)).
setCurrentPageNum(currentPageNum).setPageSize(pageSize).setPageCount(1);
return get(query);
}
@Override
public void removeByCategoryId(final String categoryId) throws RepositoryException {
final Query query = new Query().
setFilter(new PropertyFilter(Category.CATEGORY + "_" + Keys.OBJECT_ID, FilterOperator.EQUAL, categoryId));
final JSONArray relations = get(query).optJSONArray(Keys.RESULTS);
for (int i = 0; i < relations.length(); i++) {
final JSONObject rel = relations.optJSONObject(i);
remove(rel.optString(Keys.OBJECT_ID));
}
}
@Override
public void removeByTagId(final String tagId) throws RepositoryException {
final Query query = new Query().
setFilter(new PropertyFilter(Tag.TAG + "_" + Keys.OBJECT_ID, FilterOperator.EQUAL, tagId));
final JSONArray relations = get(query).optJSONArray(Keys.RESULTS);
for (int i = 0; i < relations.length(); i++) {
final JSONObject rel = relations.optJSONObject(i);
remove(rel.optString(Keys.OBJECT_ID));
}
}
}
...@@ -16,27 +16,23 @@ ...@@ -16,27 +16,23 @@
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import java.util.Iterator;
import java.util.List;
import javax.inject.Inject;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.solo.model.Comment;
import org.b3log.solo.repository.CommentRepository;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.Article; import org.b3log.solo.model.Article;
import org.b3log.solo.model.Comment;
import org.b3log.solo.repository.ArticleRepository; import org.b3log.solo.repository.ArticleRepository;
import org.b3log.solo.repository.CommentRepository;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.Iterator;
import java.util.List;
/** /**
* Comment repository. * Comment repository.
...@@ -76,7 +72,7 @@ public class CommentRepositoryImpl extends AbstractRepository implements Comment ...@@ -76,7 +72,7 @@ public class CommentRepositoryImpl extends AbstractRepository implements Comment
remove(commentId); remove(commentId);
} }
LOGGER.log(Level.DEBUG, "Removed comments[onId={0}, removedCnt={1}]", new Object[] {onId, comments.size()}); LOGGER.log(Level.DEBUG, "Removed comments[onId={0}, removedCnt={1}]", onId, comments.size());
return comments.size(); return comments.size();
} }
......
...@@ -17,12 +17,7 @@ package org.b3log.solo.repository.impl; ...@@ -17,12 +17,7 @@ package org.b3log.solo.repository.impl;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.solo.model.Link; import org.b3log.solo.model.Link;
import org.b3log.solo.repository.LinkRepository; import org.b3log.solo.repository.LinkRepository;
......
...@@ -16,14 +16,8 @@ ...@@ -16,14 +16,8 @@
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import java.util.List;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.Page; import org.b3log.solo.model.Page;
...@@ -31,6 +25,8 @@ import org.b3log.solo.repository.PageRepository; ...@@ -31,6 +25,8 @@ import org.b3log.solo.repository.PageRepository;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Page repository. * Page repository.
......
...@@ -16,22 +16,18 @@ ...@@ -16,22 +16,18 @@
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import java.util.List;
import org.b3log.solo.model.Article;
import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.TagArticleRepository;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.Article;
import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.TagArticleRepository;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Tag-Article relation repository. * Tag-Article relation repository.
......
...@@ -15,28 +15,24 @@ ...@@ -15,28 +15,24 @@
*/ */
package org.b3log.solo.repository.impl; package org.b3log.solo.repository.impl;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import javax.inject.Inject;
import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.TagRepository;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.repository.FilterOperator; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.SortDirection;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.latke.util.CollectionUtils; import org.b3log.latke.util.CollectionUtils;
import org.b3log.solo.model.Tag;
import org.b3log.solo.repository.TagArticleRepository; import org.b3log.solo.repository.TagArticleRepository;
import org.b3log.solo.repository.TagRepository;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/** /**
* Tag repository. * Tag repository.
* *
......
...@@ -19,11 +19,7 @@ package org.b3log.solo.repository.impl; ...@@ -19,11 +19,7 @@ package org.b3log.solo.repository.impl;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.model.Role; import org.b3log.latke.model.Role;
import org.b3log.latke.model.User; import org.b3log.latke.model.User;
import org.b3log.latke.repository.AbstractRepository; import org.b3log.latke.repository.*;
import org.b3log.latke.repository.FilterOperator;
import org.b3log.latke.repository.PropertyFilter;
import org.b3log.latke.repository.Query;
import org.b3log.latke.repository.RepositoryException;
import org.b3log.latke.repository.annotation.Repository; import org.b3log.latke.repository.annotation.Repository;
import org.b3log.solo.repository.UserRepository; import org.b3log.solo.repository.UserRepository;
import org.json.JSONArray; import org.json.JSONArray;
......
...@@ -16,8 +16,7 @@ ...@@ -16,8 +16,7 @@
package org.b3log.solo.service; package org.b3log.solo.service;
import java.util.List; import org.b3log.latke.ioc.inject.Inject;
import javax.inject.Inject;
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.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
...@@ -27,6 +26,8 @@ import org.b3log.solo.model.ArchiveDate; ...@@ -27,6 +26,8 @@ import org.b3log.solo.model.ArchiveDate;
import org.b3log.solo.repository.ArchiveDateRepository; import org.b3log.solo.repository.ArchiveDateRepository;
import org.json.JSONObject; import org.json.JSONObject;
import java.util.List;
/** /**
* Archive date query service. * Archive date query service.
......
...@@ -16,18 +16,13 @@ ...@@ -16,18 +16,13 @@
package org.b3log.solo.service; package org.b3log.solo.service;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
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;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventException; import org.b3log.latke.event.EventException;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
import org.b3log.latke.ioc.inject.Inject;
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.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
...@@ -39,26 +34,21 @@ import org.b3log.latke.util.CollectionUtils; ...@@ -39,26 +34,21 @@ 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;
import org.b3log.solo.event.EventTypes; import org.b3log.solo.event.EventTypes;
import org.b3log.solo.model.ArchiveDate; import org.b3log.solo.model.*;
import org.b3log.solo.model.Article; import org.b3log.solo.repository.*;
import static org.b3log.solo.model.Article.*;
import org.b3log.solo.model.Comment;
import org.b3log.solo.model.Common;
import org.b3log.solo.model.Option;
import org.b3log.solo.model.Tag;
import org.b3log.solo.model.UserExt;
import org.b3log.solo.repository.ArchiveDateArticleRepository;
import org.b3log.solo.repository.ArchiveDateRepository;
import org.b3log.solo.repository.ArticleRepository;
import org.b3log.solo.repository.CommentRepository;
import org.b3log.solo.repository.TagArticleRepository;
import org.b3log.solo.repository.TagRepository;
import org.b3log.solo.repository.UserRepository;
import org.b3log.solo.util.Comments; import org.b3log.solo.util.Comments;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONException; import org.json.JSONException;
import org.json.JSONObject; import org.json.JSONObject;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import static org.b3log.solo.model.Article.*;
/** /**
* Article management service. * Article management service.
...@@ -702,9 +692,8 @@ public class ArticleMgmtService { ...@@ -702,9 +692,8 @@ public class ArticleMgmtService {
} }
tagRepository.update(tagId, tag); tagRepository.update(tagId, tag);
LOGGER.log(Level.TRACE, "Deced tag[title={0}, refCnt={1}, publishedRefCnt={2}] of article[id={3}]", LOGGER.log(Level.TRACE, "Deced tag[title={0}, refCnt={1}, publishedRefCnt={2}] of article[id={3}]",
new Object[] { tag.getString(Tag.TAG_TITLE), tag.getInt(Tag.TAG_REFERENCE_COUNT), tag.getInt(Tag.TAG_PUBLISHED_REFERENCE_COUNT),
tag.getString(Tag.TAG_TITLE), tag.getInt(Tag.TAG_REFERENCE_COUNT), tag.getInt(Tag.TAG_PUBLISHED_REFERENCE_COUNT), articleId);
articleId});
} }
} catch (final Exception e) { } catch (final Exception e) {
LOGGER.log(Level.ERROR, "Decs tag references count of article[id" + articleId + "] failed", e); LOGGER.log(Level.ERROR, "Decs tag references count of article[id" + articleId + "] failed", e);
...@@ -967,7 +956,7 @@ public class ArticleMgmtService { ...@@ -967,7 +956,7 @@ public class ArticleMgmtService {
if (null == tag) { if (null == tag) {
LOGGER.log(Level.TRACE, "Found a new tag[title={0}] in article[title={1}]", LOGGER.log(Level.TRACE, "Found a new tag[title={0}] in article[title={1}]",
new Object[] {tagTitle, article.optString(Article.ARTICLE_TITLE)}); tagTitle, article.optString(Article.ARTICLE_TITLE));
tag = new JSONObject(); tag = new JSONObject();
tag.put(Tag.TAG_TITLE, tagTitle); tag.put(Tag.TAG_TITLE, tagTitle);
tag.put(Tag.TAG_REFERENCE_COUNT, 1); tag.put(Tag.TAG_REFERENCE_COUNT, 1);
...@@ -982,7 +971,7 @@ public class ArticleMgmtService { ...@@ -982,7 +971,7 @@ public class ArticleMgmtService {
} else { } else {
tagId = tag.optString(Keys.OBJECT_ID); tagId = tag.optString(Keys.OBJECT_ID);
LOGGER.log(Level.TRACE, "Found a existing tag[title={0}, id={1}] in article[title={2}]", LOGGER.log(Level.TRACE, "Found a existing tag[title={0}, id={1}] in article[title={2}]",
new Object[] {tag.optString(Tag.TAG_TITLE), tag.optString(Keys.OBJECT_ID), article.optString(Article.ARTICLE_TITLE)}); tag.optString(Tag.TAG_TITLE), tag.optString(Keys.OBJECT_ID), article.optString(Article.ARTICLE_TITLE));
final JSONObject tagTmp = new JSONObject(); final JSONObject tagTmp = new JSONObject();
tagTmp.put(Keys.OBJECT_ID, tagId); tagTmp.put(Keys.OBJECT_ID, tagId);
......
This diff is collapsed.
This diff is collapsed.
...@@ -15,17 +15,13 @@ ...@@ -15,17 +15,13 @@
*/ */
package org.b3log.solo.service; package org.b3log.solo.service;
import java.io.IOException;
import java.net.URL;
import java.util.Date;
import javax.inject.Inject;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DateFormatUtils; import org.apache.commons.lang.time.DateFormatUtils;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.Latkes; import org.b3log.latke.Latkes;
import org.b3log.latke.event.Event; import org.b3log.latke.event.Event;
import org.b3log.latke.event.EventManager; import org.b3log.latke.event.EventManager;
import org.b3log.latke.ioc.inject.Inject;
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;
...@@ -35,7 +31,10 @@ import org.b3log.latke.repository.Transaction; ...@@ -35,7 +31,10 @@ 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.service.annotation.Service;
import org.b3log.latke.urlfetch.*; import org.b3log.latke.urlfetch.HTTPRequest;
import org.b3log.latke.urlfetch.HTTPResponse;
import org.b3log.latke.urlfetch.URLFetchService;
import org.b3log.latke.urlfetch.URLFetchServiceFactory;
import org.b3log.latke.util.Ids; import org.b3log.latke.util.Ids;
import org.b3log.latke.util.Strings; import org.b3log.latke.util.Strings;
import org.b3log.solo.event.EventTypes; import org.b3log.solo.event.EventTypes;
...@@ -53,6 +52,11 @@ import org.json.JSONObject; ...@@ -53,6 +52,11 @@ import org.json.JSONObject;
import org.jsoup.Jsoup; import org.jsoup.Jsoup;
import org.jsoup.safety.Whitelist; import org.jsoup.safety.Whitelist;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URL;
import java.util.Date;
/** /**
* Comment management service. * Comment management service.
* *
...@@ -251,7 +255,7 @@ public class CommentMgmtService { ...@@ -251,7 +255,7 @@ public class CommentMgmtService {
message.setHtmlBody(mailBody); message.setHtmlBody(mailBody);
LOGGER.log(Level.DEBUG, "Sending a mail[mailSubject={0}, mailBody=[{1}] to admin[email={2}]", LOGGER.log(Level.DEBUG, "Sending a mail[mailSubject={0}, mailBody=[{1}] to admin[email={2}]",
new Object[]{mailSubject, mailBody, adminEmail}); mailSubject, mailBody, adminEmail);
mailService.send(message); mailService.send(message);
} }
...@@ -605,7 +609,7 @@ public class CommentMgmtService { ...@@ -605,7 +609,7 @@ public class CommentMgmtService {
ret.put(Common.IS_REPLY, true); ret.put(Common.IS_REPLY, true);
} else { } else {
LOGGER.log(Level.WARN, "Not found orginal comment[id={0}] of reply[name={1}, content={2}]", LOGGER.log(Level.WARN, "Not found orginal comment[id={0}] of reply[name={1}, content={2}]",
new String[]{originalCommentId, commentName, commentContent}); originalCommentId, commentName, commentContent);
} }
} }
setCommentThumbnailURL(comment); setCommentThumbnailURL(comment);
......
...@@ -15,13 +15,9 @@ ...@@ -15,13 +15,9 @@
*/ */
package org.b3log.solo.service; package org.b3log.solo.service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.inject.Inject;
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;
import org.b3log.latke.ioc.inject.Inject;
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.Pagination; import org.b3log.latke.model.Pagination;
...@@ -45,6 +41,11 @@ import org.b3log.solo.util.Thumbnails; ...@@ -45,6 +41,11 @@ import org.b3log.solo.util.Thumbnails;
import org.json.JSONArray; import org.json.JSONArray;
import org.json.JSONObject; import org.json.JSONObject;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/** /**
* Comment query service. * Comment query service.
* *
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
package org.b3log.solo.service; package org.b3log.solo.service;
import javax.inject.Inject;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
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.repository.Transaction; import org.b3log.latke.repository.Transaction;
......
...@@ -16,8 +16,8 @@ ...@@ -16,8 +16,8 @@
package org.b3log.solo.service; package org.b3log.solo.service;
import javax.inject.Inject;
import org.b3log.latke.Keys; import org.b3log.latke.Keys;
import org.b3log.latke.ioc.inject.Inject;
import org.b3log.latke.repository.Transaction; import org.b3log.latke.repository.Transaction;
import org.b3log.latke.service.ServiceException; import org.b3log.latke.service.ServiceException;
import org.b3log.latke.service.annotation.Service; import org.b3log.latke.service.annotation.Service;
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
package org.b3log.solo.service; package org.b3log.solo.service;
import javax.inject.Inject; import org.b3log.latke.ioc.inject.Inject;
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.repository.RepositoryException; import org.b3log.latke.repository.RepositoryException;
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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