This commit is contained in:
parent
debf9296b8
commit
db1fa4b72f
134 changed files with 2151 additions and 1029 deletions
23
pom.xml
23
pom.xml
|
@ -267,22 +267,6 @@
|
|||
<artifactId>fess-db-${database}</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jp.sf.fess</groupId>
|
||||
<artifactId>fess-suggest</artifactId>
|
||||
<version>1.3.2</version>
|
||||
<!-- REMOVE -->
|
||||
<exclusions>
|
||||
<exclusion>
|
||||
<artifactId>solrlib</artifactId>
|
||||
<groupId>org.codelibs.solr</groupId>
|
||||
</exclusion>
|
||||
<exclusion>
|
||||
<artifactId>solr-solrj</artifactId>
|
||||
<groupId>org.apache.solr</groupId>
|
||||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>jstl</groupId>
|
||||
<artifactId>jstl</artifactId>
|
||||
|
@ -454,12 +438,7 @@
|
|||
<dependency>
|
||||
<groupId>org.codelibs</groupId>
|
||||
<artifactId>corelib</artifactId>
|
||||
<version>0.2.1</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codelibs.sastruts</groupId>
|
||||
<artifactId>sastruts-core</artifactId>
|
||||
<version>0.2.0</version>
|
||||
<version>0.3.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.codelibs.sastruts</groupId>
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.codelibs.fess;
|
|||
import java.util.regex.Pattern;
|
||||
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
|
||||
public class Constants extends CoreLibConstants {
|
||||
public static final int MAJOR_VERSION = 10;
|
||||
|
@ -117,8 +117,6 @@ public class Constants extends CoreLibConstants {
|
|||
|
||||
public static final String WEB_API_SUGGEST_PROPERTY = "web.api.suggest";
|
||||
|
||||
public static final String WEB_API_SPELLCHECK_PROPERTY = "web.api.spellcheck";
|
||||
|
||||
public static final String WEB_API_ANALYSIS_PROPERTY = "web.api.analysis";
|
||||
|
||||
public static final String WEB_DESIGN_EDITOR_PROPERTY = "design.editor";
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.lang.annotation.Retention;
|
|||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.seasar.struts.annotation.Arg;
|
||||
import org.seasar.struts.annotation.Msg;
|
||||
import org.seasar.struts.annotation.Validator;
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.lang.annotation.Retention;
|
|||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.seasar.struts.annotation.Arg;
|
||||
import org.seasar.struts.annotation.Msg;
|
||||
import org.seasar.struts.annotation.Validator;
|
||||
|
|
|
@ -25,12 +25,10 @@ public class BaseApiManager {
|
|||
|
||||
protected static final String SUGGEST_API = "/suggestApi";
|
||||
|
||||
protected static final String SPELLCHECK_API = "/spellCheckApi";
|
||||
|
||||
protected static final String SEARCH_API = "/searchApi";
|
||||
|
||||
protected static enum FormatType {
|
||||
SEARCH, LABEL, SUGGEST, SPELLCHECK, HOTSEARCHWORD, FAVORITE, FAVORITES, OTHER, PING;
|
||||
SEARCH, LABEL, SUGGEST, HOTSEARCHWORD, FAVORITE, FAVORITES, OTHER, PING;
|
||||
}
|
||||
|
||||
public BaseApiManager() {
|
||||
|
@ -48,8 +46,6 @@ public class BaseApiManager {
|
|||
return FormatType.LABEL;
|
||||
} else if (FormatType.SUGGEST.name().equals(type)) {
|
||||
return FormatType.SUGGEST;
|
||||
} else if (FormatType.SPELLCHECK.name().equals(type)) {
|
||||
return FormatType.SPELLCHECK;
|
||||
} else if (FormatType.HOTSEARCHWORD.name().equals(type)) {
|
||||
return FormatType.HOTSEARCHWORD;
|
||||
} else if (FormatType.FAVORITE.name().equals(type)) {
|
||||
|
|
|
@ -28,13 +28,9 @@ import javax.servlet.ServletException;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import jp.sf.fess.suggest.entity.SpellCheckResponse;
|
||||
import jp.sf.fess.suggest.entity.SuggestResponse;
|
||||
import jp.sf.fess.suggest.entity.SuggestResponse.SuggestResponseList;
|
||||
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.WebApiException;
|
||||
import org.codelibs.fess.api.BaseApiManager;
|
||||
|
@ -84,9 +80,6 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
case SUGGEST:
|
||||
processSuggestRequest(request, response, chain);
|
||||
break;
|
||||
case SPELLCHECK:
|
||||
processSpellCheckRequest(request, response, chain);
|
||||
break;
|
||||
case HOTSEARCHWORD:
|
||||
processHotSearchWordRequest(request, response, chain);
|
||||
break;
|
||||
|
@ -350,154 +343,78 @@ public class JsonApiManager extends BaseApiManager implements WebApiManager {
|
|||
}
|
||||
|
||||
protected void processSuggestRequest(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) {
|
||||
|
||||
int status = 0;
|
||||
String errMsg = StringUtil.EMPTY;
|
||||
final StringBuilder buf = new StringBuilder(255);
|
||||
try {
|
||||
chain.doFilter(new WebApiRequest(request, SUGGEST_API), new WebApiResponse(response));
|
||||
WebApiUtil.validate();
|
||||
final Integer suggestRecordCount = WebApiUtil.getObject("suggestRecordCount");
|
||||
final List<SuggestResponse> suggestResultList = WebApiUtil.getObject("suggestResultList");
|
||||
final List<String> suggestFieldName = WebApiUtil.getObject("suggestFieldName");
|
||||
|
||||
buf.append("\"recordCount\":");
|
||||
buf.append(suggestRecordCount);
|
||||
|
||||
if (suggestResultList.size() > 0) {
|
||||
buf.append(',');
|
||||
buf.append("\"result\":[");
|
||||
boolean first1 = true;
|
||||
for (int i = 0; i < suggestResultList.size(); i++) {
|
||||
|
||||
final SuggestResponse suggestResponse = suggestResultList.get(i);
|
||||
|
||||
for (final Map.Entry<String, List<String>> entry : suggestResponse.entrySet()) {
|
||||
final String fn = suggestFieldName.get(i);
|
||||
if (!first1) {
|
||||
buf.append(',');
|
||||
} else {
|
||||
first1 = false;
|
||||
}
|
||||
|
||||
final SuggestResponseList srList = (SuggestResponseList) entry.getValue();
|
||||
|
||||
buf.append("{\"token\":");
|
||||
buf.append(escapeJson(entry.getKey()));
|
||||
buf.append(", \"fn\":");
|
||||
buf.append(escapeJson(fn));
|
||||
buf.append(", \"startOffset\":");
|
||||
buf.append(Integer.toString(srList.getStartOffset()));
|
||||
buf.append(", \"endOffset\":");
|
||||
buf.append(Integer.toString(srList.getEndOffset()));
|
||||
buf.append(", \"numFound\":");
|
||||
buf.append(Integer.toString(srList.getNumFound()));
|
||||
buf.append(", ");
|
||||
buf.append("\"result\":[");
|
||||
boolean first2 = true;
|
||||
for (final String value : srList) {
|
||||
if (!first2) {
|
||||
buf.append(',');
|
||||
} else {
|
||||
first2 = false;
|
||||
}
|
||||
buf.append(escapeJson(value));
|
||||
}
|
||||
buf.append("]}");
|
||||
}
|
||||
|
||||
}
|
||||
buf.append(']');
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
if (e instanceof WebApiException) {
|
||||
status = ((WebApiException) e).getStatusCode();
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
errMsg = e.getMessage();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Failed to process a suggest request.", e);
|
||||
}
|
||||
}
|
||||
|
||||
writeJsonResponse(status, buf.toString(), errMsg);
|
||||
|
||||
}
|
||||
|
||||
protected void processSpellCheckRequest(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) {
|
||||
|
||||
int status = 0;
|
||||
String errMsg = StringUtil.EMPTY;
|
||||
final StringBuilder buf = new StringBuilder(255);
|
||||
try {
|
||||
chain.doFilter(new WebApiRequest(request, SPELLCHECK_API), new WebApiResponse(response));
|
||||
WebApiUtil.validate();
|
||||
final Integer spellCheckRecordCount = WebApiUtil.getObject("spellCheckRecordCount");
|
||||
final List<SpellCheckResponse> spellCheckResultList = WebApiUtil.getObject("spellCheckResultList");
|
||||
final List<String> spellCheckFieldName = WebApiUtil.getObject("spellCheckFieldName");
|
||||
|
||||
buf.append("\"recordCount\":");
|
||||
buf.append(spellCheckRecordCount);
|
||||
|
||||
if (spellCheckResultList.size() > 0) {
|
||||
buf.append(',');
|
||||
buf.append("\"result\":[");
|
||||
boolean first1 = true;
|
||||
for (int i = 0; i < spellCheckResultList.size(); i++) {
|
||||
|
||||
final SuggestResponse suggestResponse = spellCheckResultList.get(i);
|
||||
|
||||
for (final Map.Entry<String, List<String>> entry : suggestResponse.entrySet()) {
|
||||
final String fn = spellCheckFieldName.get(i);
|
||||
if (!first1) {
|
||||
buf.append(',');
|
||||
} else {
|
||||
first1 = false;
|
||||
}
|
||||
|
||||
final SuggestResponseList srList = (SuggestResponseList) entry.getValue();
|
||||
|
||||
buf.append("{\"token\":");
|
||||
buf.append(escapeJson(entry.getKey()));
|
||||
buf.append(", \"fn\":");
|
||||
buf.append(escapeJson(fn));
|
||||
buf.append(", \"startOffset\":");
|
||||
buf.append(Integer.toString(srList.getStartOffset()));
|
||||
buf.append(", \"endOffset\":");
|
||||
buf.append(Integer.toString(srList.getEndOffset()));
|
||||
buf.append(", \"numFound\":");
|
||||
buf.append(Integer.toString(srList.getNumFound()));
|
||||
buf.append(", ");
|
||||
buf.append("\"result\":[");
|
||||
boolean first2 = true;
|
||||
for (final String value : srList) {
|
||||
if (!first2) {
|
||||
buf.append(',');
|
||||
} else {
|
||||
first2 = false;
|
||||
}
|
||||
buf.append(escapeJson(value));
|
||||
}
|
||||
buf.append("]}");
|
||||
}
|
||||
|
||||
}
|
||||
buf.append(']');
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
if (e instanceof WebApiException) {
|
||||
status = ((WebApiException) e).getStatusCode();
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
errMsg = e.getMessage();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Failed to process a spellcheck request.", e);
|
||||
}
|
||||
}
|
||||
|
||||
writeJsonResponse(status, buf.toString(), errMsg);
|
||||
// TODO
|
||||
// int status = 0;
|
||||
// String errMsg = StringUtil.EMPTY;
|
||||
// final StringBuilder buf = new StringBuilder(255);
|
||||
// try {
|
||||
// chain.doFilter(new WebApiRequest(request, SUGGEST_API), new WebApiResponse(response));
|
||||
// WebApiUtil.validate();
|
||||
// final Integer suggestRecordCount = WebApiUtil.getObject("suggestRecordCount");
|
||||
// final List<SuggestResponse> suggestResultList = WebApiUtil.getObject("suggestResultList");
|
||||
// final List<String> suggestFieldName = WebApiUtil.getObject("suggestFieldName");
|
||||
//
|
||||
// buf.append("\"recordCount\":");
|
||||
// buf.append(suggestRecordCount);
|
||||
//
|
||||
// if (suggestResultList.size() > 0) {
|
||||
// buf.append(',');
|
||||
// buf.append("\"result\":[");
|
||||
// boolean first1 = true;
|
||||
// for (int i = 0; i < suggestResultList.size(); i++) {
|
||||
//
|
||||
// final SuggestResponse suggestResponse = suggestResultList.get(i);
|
||||
//
|
||||
// for (final Map.Entry<String, List<String>> entry : suggestResponse.entrySet()) {
|
||||
// final String fn = suggestFieldName.get(i);
|
||||
// if (!first1) {
|
||||
// buf.append(',');
|
||||
// } else {
|
||||
// first1 = false;
|
||||
// }
|
||||
//
|
||||
// final SuggestResponseList srList = (SuggestResponseList) entry.getValue();
|
||||
//
|
||||
// buf.append("{\"token\":");
|
||||
// buf.append(escapeJson(entry.getKey()));
|
||||
// buf.append(", \"fn\":");
|
||||
// buf.append(escapeJson(fn));
|
||||
// buf.append(", \"startOffset\":");
|
||||
// buf.append(Integer.toString(srList.getStartOffset()));
|
||||
// buf.append(", \"endOffset\":");
|
||||
// buf.append(Integer.toString(srList.getEndOffset()));
|
||||
// buf.append(", \"numFound\":");
|
||||
// buf.append(Integer.toString(srList.getNumFound()));
|
||||
// buf.append(", ");
|
||||
// buf.append("\"result\":[");
|
||||
// boolean first2 = true;
|
||||
// for (final String value : srList) {
|
||||
// if (!first2) {
|
||||
// buf.append(',');
|
||||
// } else {
|
||||
// first2 = false;
|
||||
// }
|
||||
// buf.append(escapeJson(value));
|
||||
// }
|
||||
// buf.append("]}");
|
||||
// }
|
||||
//
|
||||
// }
|
||||
// buf.append(']');
|
||||
// }
|
||||
// } catch (final Exception e) {
|
||||
// if (e instanceof WebApiException) {
|
||||
// status = ((WebApiException) e).getStatusCode();
|
||||
// } else {
|
||||
// status = 1;
|
||||
// }
|
||||
// errMsg = e.getMessage();
|
||||
// if (logger.isDebugEnabled()) {
|
||||
// logger.debug("Failed to process a suggest request.", e);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// writeJsonResponse(status, buf.toString(), errMsg);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -27,15 +27,10 @@ import javax.servlet.ServletException;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import jp.sf.fess.suggest.entity.SpellCheckResponse;
|
||||
import jp.sf.fess.suggest.entity.SuggestResponse;
|
||||
import jp.sf.fess.suggest.entity.SuggestResponse.SuggestResponseList;
|
||||
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.WebApiException;
|
||||
import org.codelibs.fess.api.BaseApiManager;
|
||||
import org.codelibs.fess.api.WebApiManager;
|
||||
import org.codelibs.fess.api.WebApiRequest;
|
||||
|
@ -81,9 +76,6 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
case SUGGEST:
|
||||
processSuggestRequest(request, response, chain);
|
||||
break;
|
||||
case SPELLCHECK:
|
||||
processSpellCheckRequest(request, response, chain);
|
||||
break;
|
||||
case PING:
|
||||
processPingRequest(request, response, chain);
|
||||
break;
|
||||
|
@ -296,141 +288,72 @@ public class XmlApiManager extends BaseApiManager implements WebApiManager {
|
|||
}
|
||||
|
||||
protected void processSuggestRequest(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) {
|
||||
|
||||
int status = 0;
|
||||
String errMsg = StringUtil.EMPTY;
|
||||
final StringBuilder buf = new StringBuilder(255);
|
||||
try {
|
||||
chain.doFilter(new WebApiRequest(request, SUGGEST_API), new WebApiResponse(response));
|
||||
WebApiUtil.validate();
|
||||
final Integer suggestRecordCount = WebApiUtil.getObject("suggestRecordCount");
|
||||
final List<SuggestResponse> suggestResultList = WebApiUtil.getObject("suggestResultList");
|
||||
final List<String> suggestFieldName = WebApiUtil.getObject("suggestFieldName");
|
||||
|
||||
buf.append("<record-count>");
|
||||
buf.append(suggestRecordCount);
|
||||
buf.append("</record-count>");
|
||||
if (suggestResultList.size() > 0) {
|
||||
buf.append("<result>");
|
||||
|
||||
for (int i = 0; i < suggestResultList.size(); i++) {
|
||||
|
||||
final SuggestResponse suggestResponse = suggestResultList.get(i);
|
||||
|
||||
for (final Map.Entry<String, List<String>> entry : suggestResponse.entrySet()) {
|
||||
final SuggestResponseList srList = (SuggestResponseList) entry.getValue();
|
||||
final String fn = suggestFieldName.get(i);
|
||||
buf.append("<suggest>");
|
||||
buf.append("<token>");
|
||||
buf.append(escapeXml(entry.getKey()));
|
||||
buf.append("</token>");
|
||||
buf.append("<fn>");
|
||||
buf.append(escapeXml(fn));
|
||||
buf.append("</fn>");
|
||||
buf.append("<start-offset>");
|
||||
buf.append(escapeXml(Integer.toString(srList.getStartOffset())));
|
||||
buf.append("</start-offset>");
|
||||
buf.append("<end-offset>");
|
||||
buf.append(escapeXml(Integer.toString(srList.getEndOffset())));
|
||||
buf.append("</end-offset>");
|
||||
buf.append("<num-found>");
|
||||
buf.append(escapeXml(Integer.toString(srList.getNumFound())));
|
||||
buf.append("</num-found>");
|
||||
buf.append("<result>");
|
||||
for (final String value : srList) {
|
||||
buf.append("<value>");
|
||||
buf.append(escapeXml(value));
|
||||
buf.append("</value>");
|
||||
}
|
||||
buf.append("</result>");
|
||||
buf.append("</suggest>");
|
||||
|
||||
}
|
||||
}
|
||||
buf.append("</result>");
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
if (e instanceof WebApiException) {
|
||||
status = ((WebApiException) e).getStatusCode();
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
errMsg = e.getMessage();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Failed to process a suggest request.", e);
|
||||
}
|
||||
}
|
||||
|
||||
writeXmlResponse(status, buf.toString(), errMsg);
|
||||
}
|
||||
|
||||
protected void processSpellCheckRequest(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) {
|
||||
|
||||
int status = 0;
|
||||
String errMsg = StringUtil.EMPTY;
|
||||
final StringBuilder buf = new StringBuilder(255);
|
||||
try {
|
||||
chain.doFilter(new WebApiRequest(request, SPELLCHECK_API), new WebApiResponse(response));
|
||||
WebApiUtil.validate();
|
||||
final Integer spellCheckRecordCount = WebApiUtil.getObject("spellCheckRecordCount");
|
||||
final List<SpellCheckResponse> spellCheckResultList = WebApiUtil.getObject("spellCheckResultList");
|
||||
final List<String> spellCheckFieldName = WebApiUtil.getObject("spellCheckFieldName");
|
||||
|
||||
buf.append("<record-count>");
|
||||
buf.append(spellCheckRecordCount);
|
||||
buf.append("</record-count>");
|
||||
if (spellCheckResultList.size() > 0) {
|
||||
buf.append("<result>");
|
||||
|
||||
for (int i = 0; i < spellCheckResultList.size(); i++) {
|
||||
|
||||
final SuggestResponse suggestResponse = spellCheckResultList.get(i);
|
||||
|
||||
for (final Map.Entry<String, List<String>> entry : suggestResponse.entrySet()) {
|
||||
final SuggestResponseList srList = (SuggestResponseList) entry.getValue();
|
||||
final String fn = spellCheckFieldName.get(i);
|
||||
buf.append("<suggest>");
|
||||
buf.append("<token>");
|
||||
buf.append(escapeXml(entry.getKey()));
|
||||
buf.append("</token>");
|
||||
buf.append("<fn>");
|
||||
buf.append(escapeXml(fn));
|
||||
buf.append("</fn>");
|
||||
buf.append("<start-offset>");
|
||||
buf.append(escapeXml(Integer.toString(srList.getStartOffset())));
|
||||
buf.append("</start-offset>");
|
||||
buf.append("<end-offset>");
|
||||
buf.append(escapeXml(Integer.toString(srList.getEndOffset())));
|
||||
buf.append("</end-offset>");
|
||||
buf.append("<num-found>");
|
||||
buf.append(escapeXml(Integer.toString(srList.getNumFound())));
|
||||
buf.append("</num-found>");
|
||||
buf.append("<result>");
|
||||
for (final String value : srList) {
|
||||
buf.append("<value>");
|
||||
buf.append(escapeXml(value));
|
||||
buf.append("</value>");
|
||||
}
|
||||
buf.append("</result>");
|
||||
buf.append("</suggest>");
|
||||
|
||||
}
|
||||
}
|
||||
buf.append("</result>");
|
||||
}
|
||||
} catch (final Exception e) {
|
||||
if (e instanceof WebApiException) {
|
||||
status = ((WebApiException) e).getStatusCode();
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
errMsg = e.getMessage();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Failed to process a spellcheck request.", e);
|
||||
}
|
||||
}
|
||||
|
||||
writeXmlResponse(status, buf.toString(), errMsg);
|
||||
// TODO
|
||||
// int status = 0;
|
||||
// String errMsg = StringUtil.EMPTY;
|
||||
// final StringBuilder buf = new StringBuilder(255);
|
||||
// try {
|
||||
// chain.doFilter(new WebApiRequest(request, SUGGEST_API), new WebApiResponse(response));
|
||||
// WebApiUtil.validate();
|
||||
// final Integer suggestRecordCount = WebApiUtil.getObject("suggestRecordCount");
|
||||
// final List<SuggestResponse> suggestResultList = WebApiUtil.getObject("suggestResultList");
|
||||
// final List<String> suggestFieldName = WebApiUtil.getObject("suggestFieldName");
|
||||
//
|
||||
// buf.append("<record-count>");
|
||||
// buf.append(suggestRecordCount);
|
||||
// buf.append("</record-count>");
|
||||
// if (suggestResultList.size() > 0) {
|
||||
// buf.append("<result>");
|
||||
//
|
||||
// for (int i = 0; i < suggestResultList.size(); i++) {
|
||||
//
|
||||
// final SuggestResponse suggestResponse = suggestResultList.get(i);
|
||||
//
|
||||
// for (final Map.Entry<String, List<String>> entry : suggestResponse.entrySet()) {
|
||||
// final SuggestResponseList srList = (SuggestResponseList) entry.getValue();
|
||||
// final String fn = suggestFieldName.get(i);
|
||||
// buf.append("<suggest>");
|
||||
// buf.append("<token>");
|
||||
// buf.append(escapeXml(entry.getKey()));
|
||||
// buf.append("</token>");
|
||||
// buf.append("<fn>");
|
||||
// buf.append(escapeXml(fn));
|
||||
// buf.append("</fn>");
|
||||
// buf.append("<start-offset>");
|
||||
// buf.append(escapeXml(Integer.toString(srList.getStartOffset())));
|
||||
// buf.append("</start-offset>");
|
||||
// buf.append("<end-offset>");
|
||||
// buf.append(escapeXml(Integer.toString(srList.getEndOffset())));
|
||||
// buf.append("</end-offset>");
|
||||
// buf.append("<num-found>");
|
||||
// buf.append(escapeXml(Integer.toString(srList.getNumFound())));
|
||||
// buf.append("</num-found>");
|
||||
// buf.append("<result>");
|
||||
// for (final String value : srList) {
|
||||
// buf.append("<value>");
|
||||
// buf.append(escapeXml(value));
|
||||
// buf.append("</value>");
|
||||
// }
|
||||
// buf.append("</result>");
|
||||
// buf.append("</suggest>");
|
||||
//
|
||||
// }
|
||||
// }
|
||||
// buf.append("</result>");
|
||||
// }
|
||||
// } catch (final Exception e) {
|
||||
// if (e instanceof WebApiException) {
|
||||
// status = ((WebApiException) e).getStatusCode();
|
||||
// } else {
|
||||
// status = 1;
|
||||
// }
|
||||
// errMsg = e.getMessage();
|
||||
// if (logger.isDebugEnabled()) {
|
||||
// logger.debug("Failed to process a suggest request.", e);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// writeXmlResponse(status, buf.toString(), errMsg);
|
||||
}
|
||||
|
||||
protected void writeXmlResponse(final int status, final String body, final String errMsg) {
|
||||
|
|
|
@ -1,27 +1,27 @@
|
|||
package org.codelibs.fess.client;
|
||||
|
||||
import static org.codelibs.elasticsearch.runner.ElasticsearchClusterRunner.newConfigs;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.apache.commons.codec.Charsets;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.io.FileUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.elasticsearch.runner.ElasticsearchClusterRunner;
|
||||
import org.codelibs.elasticsearch.runner.ElasticsearchClusterRunner.Configs;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.ResultOffsetExceededException;
|
||||
import org.codelibs.fess.entity.FacetInfo;
|
||||
import org.codelibs.fess.entity.GeoInfo;
|
||||
import org.codelibs.fess.entity.PingResponse;
|
||||
import org.codelibs.fess.entity.SearchQuery;
|
||||
import org.codelibs.fess.entity.SearchQuery.SortField;
|
||||
import org.codelibs.fess.helper.QueryHelper;
|
||||
import org.codelibs.fess.helper.RoleQueryHelper;
|
||||
import org.codelibs.fess.solr.FessSolrQueryException;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.QueryResponseList;
|
||||
|
@ -29,6 +29,8 @@ import org.elasticsearch.ElasticsearchException;
|
|||
import org.elasticsearch.action.ActionListener;
|
||||
import org.elasticsearch.action.ShardOperationFailedException;
|
||||
import org.elasticsearch.action.admin.cluster.health.ClusterHealthResponse;
|
||||
import org.elasticsearch.action.admin.indices.create.CreateIndexResponse;
|
||||
import org.elasticsearch.action.admin.indices.exists.indices.IndicesExistsResponse;
|
||||
import org.elasticsearch.action.admin.indices.flush.FlushResponse;
|
||||
import org.elasticsearch.action.admin.indices.optimize.OptimizeResponse;
|
||||
import org.elasticsearch.action.admin.indices.refresh.RefreshResponse;
|
||||
|
@ -62,30 +64,51 @@ import com.google.common.io.BaseEncoding;
|
|||
public class SearchClient {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SearchClient.class);
|
||||
|
||||
@Resource
|
||||
protected SearchClient searchClient;
|
||||
|
||||
@Resource
|
||||
protected QueryHelper queryHelper;
|
||||
|
||||
@Resource
|
||||
protected RoleQueryHelper roleQueryHelper;
|
||||
|
||||
protected ElasticsearchClusterRunner runner;
|
||||
|
||||
protected List<TransportAddress> transportAddressList = new ArrayList<>();
|
||||
|
||||
protected Client client;
|
||||
|
||||
protected String index;
|
||||
protected String index = "fess";
|
||||
|
||||
protected String type;
|
||||
protected String type = "doc";
|
||||
|
||||
public String getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
public void setIndex(String index) {
|
||||
this.index = index;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
this.type = type;
|
||||
}
|
||||
|
||||
public void setRunner(ElasticsearchClusterRunner runner) {
|
||||
this.runner = runner;
|
||||
}
|
||||
|
||||
public void addTransportAddress(String host, int port) {
|
||||
transportAddressList.add(new InetSocketTransportAddress(host, port));
|
||||
}
|
||||
|
||||
@InitMethod
|
||||
public void open() {
|
||||
if (transportAddressList.isEmpty()) {
|
||||
if (runner == null) {
|
||||
throw new FessSystemException("No elasticsearch instance.");
|
||||
runner = new ElasticsearchClusterRunner();
|
||||
Configs config = newConfigs().clusterName("fess-" + UUID.randomUUID().toString()).numOfNode(1);
|
||||
String esDir = System.getProperty("fess.es.dir");
|
||||
if (esDir != null) {
|
||||
config.basePath(esDir);
|
||||
}
|
||||
runner.build(config);
|
||||
}
|
||||
client = runner.client();
|
||||
} else {
|
||||
|
@ -95,6 +118,33 @@ public class SearchClient {
|
|||
}
|
||||
client = transportClient;
|
||||
}
|
||||
|
||||
waitForYellowStatus();
|
||||
|
||||
if (!isIndexExists()) {
|
||||
createIndex();
|
||||
waitForYellowStatus();
|
||||
}
|
||||
}
|
||||
|
||||
private void createIndex() {
|
||||
String source = FileUtil.readText("json/index.json");
|
||||
CreateIndexResponse response = client.admin().indices().prepareCreate(index).setSource(source).execute().actionGet();
|
||||
if (!response.isAcknowledged()) {
|
||||
logger.warn("Failed to create {0}.", index);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isIndexExists() {
|
||||
IndicesExistsResponse response = client.admin().indices().prepareExists(index).execute().actionGet();
|
||||
return response.isExists();
|
||||
}
|
||||
|
||||
private void waitForYellowStatus() {
|
||||
ClusterHealthResponse response = client.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet();
|
||||
if (logger.isDebugEnabled()) {
|
||||
logger.debug("Elasticsearch Cluster Status: {0}", response.getStatus());
|
||||
}
|
||||
}
|
||||
|
||||
@DestroyMethod
|
||||
|
@ -106,10 +156,6 @@ public class SearchClient {
|
|||
}
|
||||
}
|
||||
|
||||
public void addTransportAddress(String host, int port) {
|
||||
transportAddressList.add(new InetSocketTransportAddress(host, port));
|
||||
}
|
||||
|
||||
public void deleteByQuery(QueryBuilder queryBuilder) {
|
||||
try {
|
||||
client.prepareDeleteByQuery(index).setQuery(queryBuilder).execute().actionGet().forEach(res -> {
|
||||
|
@ -135,11 +181,11 @@ public class SearchClient {
|
|||
SearchRequestBuilder queryRequestBuilder = client.prepareSearch(index);
|
||||
if (condition.build(queryRequestBuilder)) {
|
||||
|
||||
if (queryHelper.getTimeAllowed() >= 0) {
|
||||
queryRequestBuilder.setTimeout(TimeValue.timeValueMillis(queryHelper.getTimeAllowed()));
|
||||
if (ComponentUtil.getQueryHelper().getTimeAllowed() >= 0) {
|
||||
queryRequestBuilder.setTimeout(TimeValue.timeValueMillis(ComponentUtil.getQueryHelper().getTimeAllowed()));
|
||||
}
|
||||
|
||||
final Set<Entry<String, String[]>> paramSet = queryHelper.getRequestParameterSet();
|
||||
final Set<Entry<String, String[]>> paramSet = ComponentUtil.getQueryHelper().getRequestParameterSet();
|
||||
if (!paramSet.isEmpty()) {
|
||||
for (final Map.Entry<String, String[]> entry : paramSet) {
|
||||
queryRequestBuilder.putHeader(entry.getKey(), entry.getValue());
|
||||
|
@ -186,7 +232,7 @@ public class SearchClient {
|
|||
// TODO
|
||||
public List<Map<String, Object>> getDocumentList(final String query, final int start, final int rows, final FacetInfo facetInfo,
|
||||
final GeoInfo geoInfo, final String[] responseFields, final boolean forUser) {
|
||||
if (start > queryHelper.getMaxSearchResultOffset()) {
|
||||
if (start > ComponentUtil.getQueryHelper().getMaxSearchResultOffset()) {
|
||||
throw new ResultOffsetExceededException("The number of result size is exceeded.");
|
||||
}
|
||||
|
||||
|
@ -194,7 +240,7 @@ public class SearchClient {
|
|||
|
||||
SearchResponse searchResponse = null;
|
||||
SearchRequestBuilder queryRequestBuilder = client.prepareSearch(index);
|
||||
final SearchQuery searchQuery = queryHelper.build(query, forUser);
|
||||
final SearchQuery searchQuery = ComponentUtil.getQueryHelper().build(query, forUser);
|
||||
final String q = searchQuery.getQuery();
|
||||
if (StringUtil.isNotBlank(q)) {
|
||||
|
||||
|
@ -205,7 +251,7 @@ public class SearchClient {
|
|||
// query
|
||||
QueryBuilder queryBuilder = QueryBuilders.queryStringQuery(q);
|
||||
queryRequestBuilder.setFrom(start).setSize(rows);
|
||||
for (final Map.Entry<String, String[]> entry : queryHelper.getQueryParamMap().entrySet()) {
|
||||
for (final Map.Entry<String, String[]> entry : ComponentUtil.getQueryHelper().getQueryParamMap().entrySet()) {
|
||||
queryRequestBuilder.putHeader(entry.getKey(), entry.getValue());
|
||||
}
|
||||
// filter query
|
||||
|
@ -229,8 +275,8 @@ public class SearchClient {
|
|||
}
|
||||
queryRequestBuilder.addSort(fieldSort);
|
||||
}
|
||||
} else if (queryHelper.hasDefaultSortFields()) {
|
||||
for (final SortField sortField : queryHelper.getDefaultSortFields()) {
|
||||
} else if (ComponentUtil.getQueryHelper().hasDefaultSortFields()) {
|
||||
for (final SortField sortField : ComponentUtil.getQueryHelper().getDefaultSortFields()) {
|
||||
FieldSortBuilder fieldSort = SortBuilders.fieldSort(sortField.getField());
|
||||
if (Constants.DESC.equals(sortField.getOrder())) {
|
||||
fieldSort.order(SortOrder.DESC);
|
||||
|
@ -241,9 +287,10 @@ public class SearchClient {
|
|||
}
|
||||
}
|
||||
// highlighting
|
||||
if (queryHelper.getHighlightingFields() != null && queryHelper.getHighlightingFields().length != 0) {
|
||||
for (final String hf : queryHelper.getHighlightingFields()) {
|
||||
queryRequestBuilder.addHighlightedField(hf, queryHelper.getHighlightSnippetSize());
|
||||
if (ComponentUtil.getQueryHelper().getHighlightingFields() != null
|
||||
&& ComponentUtil.getQueryHelper().getHighlightingFields().length != 0) {
|
||||
for (final String hf : ComponentUtil.getQueryHelper().getHighlightingFields()) {
|
||||
queryRequestBuilder.addHighlightedField(hf, ComponentUtil.getQueryHelper().getHighlightSnippetSize());
|
||||
}
|
||||
}
|
||||
// geo
|
||||
|
@ -257,7 +304,7 @@ public class SearchClient {
|
|||
if (facetInfo != null) {
|
||||
if (facetInfo.field != null) {
|
||||
for (final String f : facetInfo.field) {
|
||||
if (queryHelper.isFacetField(f)) {
|
||||
if (ComponentUtil.getQueryHelper().isFacetField(f)) {
|
||||
String encodedField = BaseEncoding.base64().encode(f.getBytes(Charsets.UTF_8));
|
||||
TermsBuilder termsBuilder = AggregationBuilders.terms(Constants.FACET_FIELD_PREFIX + encodedField).field(f);
|
||||
// TODO order
|
||||
|
@ -273,7 +320,7 @@ public class SearchClient {
|
|||
}
|
||||
if (facetInfo.query != null) {
|
||||
for (final String fq : facetInfo.query) {
|
||||
final String facetQuery = queryHelper.buildFacetQuery(fq);
|
||||
final String facetQuery = ComponentUtil.getQueryHelper().buildFacetQuery(fq);
|
||||
if (StringUtil.isNotBlank(facetQuery)) {
|
||||
final String encodedFacetQuery = BaseEncoding.base64().encode(facetQuery.getBytes(Charsets.UTF_8));
|
||||
FilterAggregationBuilder filterBuilder =
|
||||
|
@ -292,10 +339,10 @@ public class SearchClient {
|
|||
}
|
||||
}
|
||||
|
||||
if (queryHelper.getTimeAllowed() >= 0) {
|
||||
queryRequestBuilder.setTimeout(TimeValue.timeValueMillis(queryHelper.getTimeAllowed()));
|
||||
if (ComponentUtil.getQueryHelper().getTimeAllowed() >= 0) {
|
||||
queryRequestBuilder.setTimeout(TimeValue.timeValueMillis(ComponentUtil.getQueryHelper().getTimeAllowed()));
|
||||
}
|
||||
final Set<Entry<String, String[]>> paramSet = queryHelper.getRequestParameterSet();
|
||||
final Set<Entry<String, String[]>> paramSet = ComponentUtil.getQueryHelper().getRequestParameterSet();
|
||||
if (!paramSet.isEmpty()) {
|
||||
for (final Map.Entry<String, String[]> entry : paramSet) {
|
||||
queryRequestBuilder.putHeader(entry.getKey(), entry.getValue());
|
||||
|
|
|
@ -32,7 +32,7 @@ import org.apache.http.auth.UsernamePasswordCredentials;
|
|||
import org.apache.http.impl.auth.BasicScheme;
|
||||
import org.apache.http.impl.auth.DigestScheme;
|
||||
import org.apache.http.impl.auth.NTLMScheme;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.bsentity.BsDataCrawlingConfig;
|
||||
import org.codelibs.fess.util.ParameterUtil;
|
||||
|
|
|
@ -18,7 +18,7 @@ package org.codelibs.fess.db.exentity;
|
|||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.bsentity.BsFailureUrl;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.bsentity.BsFileCrawlingConfig;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.codelibs.fess.db.exentity;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.db.bsentity.BsLabelType;
|
||||
|
||||
/**
|
||||
|
|
|
@ -18,7 +18,7 @@ package org.codelibs.fess.db.exentity;
|
|||
|
||||
import java.text.SimpleDateFormat;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.bsentity.BsSearchLog;
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ import org.apache.http.auth.UsernamePasswordCredentials;
|
|||
import org.apache.http.impl.auth.BasicScheme;
|
||||
import org.apache.http.impl.auth.DigestScheme;
|
||||
import org.apache.http.impl.auth.NTLMScheme;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.bsentity.BsWebAuthentication;
|
||||
import org.codelibs.fess.util.ParameterUtil;
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.bsentity.BsWebCrawlingConfig;
|
||||
import org.codelibs.fess.service.RequestHeaderService;
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.seasar.extension.timer.TimeoutManager;
|
||||
import org.seasar.extension.timer.TimeoutTarget;
|
||||
import org.seasar.extension.timer.TimeoutTask;
|
||||
|
|
|
@ -33,7 +33,7 @@ import java.util.List;
|
|||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.dict.DictionaryException;
|
||||
import org.codelibs.fess.dict.DictionaryFile;
|
||||
|
|
|
@ -33,11 +33,11 @@ import java.util.List;
|
|||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.lucene.analysis.ja.util.CSVUtil;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.dict.DictionaryException;
|
||||
import org.codelibs.fess.dict.DictionaryFile;
|
||||
import org.codelibs.fess.util.UserDictCSVUtil;
|
||||
import org.codelibs.robot.util.StreamUtil;
|
||||
|
||||
public class UserDictFile extends DictionaryFile<UserDictItem> {
|
||||
|
@ -160,7 +160,7 @@ public class UserDictFile extends DictionaryFile<UserDictItem> {
|
|||
continue;
|
||||
}
|
||||
|
||||
final String[] values = CSVUtil.parse(line);
|
||||
final String[] values = UserDictCSVUtil.parse(line);
|
||||
String token = null;
|
||||
String segmentation = null;
|
||||
String reading = null;
|
||||
|
|
|
@ -22,7 +22,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.DataCrawlingConfig;
|
||||
import org.codelibs.fess.ds.DataStore;
|
||||
|
|
|
@ -28,11 +28,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.DataCrawlingConfig;
|
||||
import org.codelibs.fess.ds.DataStoreCrawlingException;
|
||||
|
@ -45,6 +42,9 @@ import org.seasar.framework.container.SingletonS2Container;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
|
||||
public class CsvDataStoreImpl extends AbstractDataStoreImpl {
|
||||
private static final Logger logger = LoggerFactory.getLogger(CsvDataStoreImpl.class);
|
||||
|
||||
|
|
|
@ -27,7 +27,7 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.db.exentity.DataCrawlingConfig;
|
||||
import org.codelibs.fess.ds.DataStoreException;
|
||||
|
|
|
@ -22,8 +22,6 @@ import java.util.Collections;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.db.exentity.DataCrawlingConfig;
|
||||
|
@ -51,6 +49,8 @@ import org.seasar.framework.util.SerializeUtil;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
|
||||
public class FileListDataStoreImpl extends CsvDataStoreImpl {
|
||||
|
||||
private static final Logger logger = LoggerFactory.getLogger(FileListDataStoreImpl.class);
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
package org.codelibs.fess.entity;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.elasticsearch.common.unit.DistanceUnit;
|
||||
import org.elasticsearch.index.query.FilterBuilder;
|
||||
import org.elasticsearch.index.query.FilterBuilders;
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.codelibs.fess.entity;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
|
||||
public class SearchQuery {
|
||||
|
|
|
@ -34,8 +34,8 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.db.allcommon.CDef;
|
||||
|
|
|
@ -35,7 +35,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
|
||||
import org.apache.commons.codec.DecoderException;
|
||||
import org.apache.commons.codec.net.URLCodec;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.seasar.extension.filter.EncodingFilter;
|
||||
|
||||
public class FessEncodingFilter extends EncodingFilter {
|
||||
|
|
|
@ -25,7 +25,7 @@ import java.util.LinkedHashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
|
|
|
@ -25,8 +25,8 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.DataCrawlingConfig;
|
||||
import org.codelibs.fess.ds.DataStore;
|
||||
|
|
|
@ -17,25 +17,25 @@
|
|||
package org.codelibs.fess.helper;
|
||||
|
||||
public class FieldHelper {
|
||||
public String favoriteCountField = "favoriteCount_l_x_dv";
|
||||
public String favoriteCountField = "favorite_count";
|
||||
|
||||
public String clickCountField = "clickCount_l_x_dv";
|
||||
public String clickCountField = "click_count";
|
||||
|
||||
public String configIdField = "cid_s";
|
||||
public String configIdField = "config_id";
|
||||
|
||||
public String expiresField = "expires_dt";
|
||||
public String expiresField = "expires";
|
||||
|
||||
public String urlField = "url";
|
||||
|
||||
public String docIdField = "docId";
|
||||
public String docIdField = "doc_id";
|
||||
|
||||
public String idField = "id";
|
||||
|
||||
public String langField = "lang_s";
|
||||
public String langField = "lang";
|
||||
|
||||
public String hasCacheField = "hasCache_s_s";
|
||||
public String hasCacheField = "has_cache";
|
||||
|
||||
public String lastModifiedField = "lastModified";
|
||||
public String lastModifiedField = "last_modified";
|
||||
|
||||
public String anchorField = "anchor";
|
||||
|
||||
|
@ -51,7 +51,7 @@ public class FieldHelper {
|
|||
|
||||
public String mimetypeField = "mimetype";
|
||||
|
||||
public String parentIdField = "parentId";
|
||||
public String parentIdField = "parent_id";
|
||||
|
||||
public String contentField = "content";
|
||||
|
||||
|
@ -65,8 +65,8 @@ public class FieldHelper {
|
|||
|
||||
public String siteField = "site";
|
||||
|
||||
public String contentLengthField = "contentLength";
|
||||
public String contentLengthField = "content_length";
|
||||
|
||||
public String filetypeField = "filetype_s";
|
||||
public String filetypeField = "filetype";
|
||||
|
||||
}
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.codelibs.fess.helper;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
|
||||
public class FileTypeHelper {
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@ import java.util.regex.Pattern;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.db.exbhv.SearchLogBhv;
|
||||
import org.codelibs.fess.db.exbhv.pmbean.HotSearchWordPmb;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
|
|
|
@ -22,7 +22,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.db.exentity.KeyMatch;
|
||||
import org.codelibs.fess.service.KeyMatchService;
|
||||
|
|
|
@ -28,7 +28,7 @@ import java.util.regex.Pattern;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.LabelType;
|
||||
import org.codelibs.fess.service.LabelTypeService;
|
||||
|
|
|
@ -23,7 +23,7 @@ import javax.servlet.ServletOutputStream;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.seasar.framework.container.annotation.tiger.InitMethod;
|
||||
|
|
|
@ -46,7 +46,7 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.InvalidQueryException;
|
||||
import org.codelibs.fess.entity.FacetInfo;
|
||||
|
|
|
@ -22,9 +22,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.fess.suggest.service.SuggestService;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.db.exbhv.ClickLogBhv;
|
||||
import org.codelibs.fess.db.exbhv.FavoriteLogBhv;
|
||||
import org.codelibs.fess.db.exbhv.pmbean.FavoriteUrlCountPmb;
|
||||
|
@ -51,9 +49,6 @@ public abstract class SearchLogHelper {
|
|||
|
||||
protected Map<String, Long> userInfoCache;
|
||||
|
||||
@Resource
|
||||
protected SuggestService suggestService;
|
||||
|
||||
@InitMethod
|
||||
public void init() {
|
||||
userInfoCache = new LruHashMap<String, Long>(userInfoCacheSize);
|
||||
|
|
|
@ -16,10 +16,7 @@
|
|||
|
||||
package org.codelibs.fess.helper;
|
||||
|
||||
import java.io.BufferedWriter;
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -27,23 +24,16 @@ import java.util.Set;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.fess.suggest.SuggestConstants;
|
||||
import jp.sf.fess.suggest.service.SuggestService;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.db.exbhv.SuggestBadWordBhv;
|
||||
import org.codelibs.fess.db.exbhv.SuggestElevateWordBhv;
|
||||
import org.codelibs.fess.db.exentity.SuggestBadWord;
|
||||
import org.codelibs.fess.db.exentity.SuggestElevateWord;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
public class SuggestHelper {
|
||||
private static final Logger logger = LoggerFactory.getLogger(SuggestHelper.class);
|
||||
|
||||
@Resource
|
||||
protected SuggestService suggestService;
|
||||
|
||||
@Resource
|
||||
protected SuggestElevateWordBhv suggestElevateWordBhv;
|
||||
|
||||
|
@ -86,21 +76,22 @@ public class SuggestHelper {
|
|||
}
|
||||
|
||||
public void storeAllElevateWords() {
|
||||
suggestService.deleteAllElevateWords();
|
||||
|
||||
final List<SuggestElevateWord> list = suggestElevateWordBhv.selectList(cb -> {
|
||||
cb.query().setDeletedBy_IsNull();
|
||||
});
|
||||
for (final SuggestElevateWord suggestElevateWord : list) {
|
||||
final String word = suggestElevateWord.getSuggestWord();
|
||||
final String reading = suggestElevateWord.getReading();
|
||||
final String labelStr = suggestElevateWord.getTargetLabel();
|
||||
final String roleStr = suggestElevateWord.getTargetRole();
|
||||
final long boost = suggestElevateWord.getBoost().longValue();
|
||||
|
||||
addElevateWord(word, reading, labelStr, roleStr, boost, false);
|
||||
}
|
||||
suggestService.commit();
|
||||
// TODO
|
||||
// suggestService.deleteAllElevateWords();
|
||||
//
|
||||
// final List<SuggestElevateWord> list = suggestElevateWordBhv.selectList(cb -> {
|
||||
// cb.query().setDeletedBy_IsNull();
|
||||
// });
|
||||
// for (final SuggestElevateWord suggestElevateWord : list) {
|
||||
// final String word = suggestElevateWord.getSuggestWord();
|
||||
// final String reading = suggestElevateWord.getReading();
|
||||
// final String labelStr = suggestElevateWord.getTargetLabel();
|
||||
// final String roleStr = suggestElevateWord.getTargetRole();
|
||||
// final long boost = suggestElevateWord.getBoost().longValue();
|
||||
//
|
||||
// addElevateWord(word, reading, labelStr, roleStr, boost, false);
|
||||
// }
|
||||
// suggestService.commit();
|
||||
}
|
||||
|
||||
public void addElevateWord(final String word, final String reading, final String labels, final String roles, final long boost) {
|
||||
|
@ -131,11 +122,12 @@ public class SuggestHelper {
|
|||
}
|
||||
}
|
||||
|
||||
suggestService.addElevateWord(word, reading, labelList, roleList, boost);
|
||||
|
||||
if (commit) {
|
||||
suggestService.commit();
|
||||
}
|
||||
// TODO
|
||||
// suggestService.addElevateWord(word, reading, labelList, roleList, boost);
|
||||
//
|
||||
// if (commit) {
|
||||
// suggestService.commit();
|
||||
// }
|
||||
}
|
||||
|
||||
public void deleteAllBadWord() {
|
||||
|
@ -147,9 +139,10 @@ public class SuggestHelper {
|
|||
final String word = suggestBadWord.getSuggestWord();
|
||||
badWords.add(word);
|
||||
}
|
||||
suggestService.updateBadWords(badWords);
|
||||
suggestService.deleteBadWords();
|
||||
suggestService.commit();
|
||||
// TODO
|
||||
// suggestService.updateBadWords(badWords);
|
||||
// suggestService.deleteBadWords();
|
||||
// suggestService.commit();
|
||||
}
|
||||
|
||||
public void updateSolrBadwordFile() {
|
||||
|
@ -163,28 +156,29 @@ public class SuggestHelper {
|
|||
return;
|
||||
}
|
||||
|
||||
final File file = new File(dir, SuggestConstants.BADWORD_FILENAME);
|
||||
BufferedWriter bw = null;
|
||||
try {
|
||||
if (!file.exists()) {
|
||||
file.createNewFile();
|
||||
}
|
||||
bw = new BufferedWriter(new FileWriter(file, false));
|
||||
for (final SuggestBadWord suggestBadWord : list) {
|
||||
bw.write(suggestBadWord.getSuggestWord());
|
||||
bw.newLine();
|
||||
}
|
||||
bw.close();
|
||||
} catch (final IOException e) {
|
||||
logger.warn("Failed to update badword file.", e);
|
||||
} finally {
|
||||
if (bw != null) {
|
||||
try {
|
||||
bw.close();
|
||||
} catch (final Exception e2) {
|
||||
//ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO
|
||||
// final File file = new File(dir, SuggestConstants.BADWORD_FILENAME);
|
||||
// BufferedWriter bw = null;
|
||||
// try {
|
||||
// if (!file.exists()) {
|
||||
// file.createNewFile();
|
||||
// }
|
||||
// bw = new BufferedWriter(new FileWriter(file, false));
|
||||
// for (final SuggestBadWord suggestBadWord : list) {
|
||||
// bw.write(suggestBadWord.getSuggestWord());
|
||||
// bw.newLine();
|
||||
// }
|
||||
// bw.close();
|
||||
// } catch (final IOException e) {
|
||||
// logger.warn("Failed to update badword file.", e);
|
||||
// } finally {
|
||||
// if (bw != null) {
|
||||
// try {
|
||||
// bw.close();
|
||||
// } catch (final Exception e2) {
|
||||
// //ignore
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
|||
|
||||
import org.apache.commons.lang.LocaleUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.RoleType;
|
||||
import org.codelibs.fess.service.RoleTypeService;
|
||||
|
|
|
@ -36,8 +36,8 @@ import javax.servlet.http.HttpServletRequest;
|
|||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.entity.FacetQueryView;
|
||||
|
|
|
@ -23,8 +23,8 @@ import java.util.List;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.BoostDocumentRule;
|
||||
import org.codelibs.fess.db.exentity.FileCrawlingConfig;
|
||||
|
|
|
@ -26,7 +26,7 @@ import javax.servlet.http.Cookie;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.helper.FieldHelper;
|
||||
import org.codelibs.fess.helper.SearchLogHelper;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
package org.codelibs.fess.helper.impl;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.helper.DatabaseHelper;
|
||||
import org.codelibs.fess.util.ResourceUtil;
|
||||
import org.h2.tools.DeleteDbFiles;
|
||||
|
|
|
@ -29,7 +29,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.codelibs.core.crypto.CachedCipher;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.entity.LoginInfo;
|
||||
import org.codelibs.fess.helper.RoleQueryHelper;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
|
|
|
@ -23,14 +23,13 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Queue;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.beans.FessBeans;
|
||||
import org.codelibs.fess.db.exbhv.ClickLogBhv;
|
||||
import org.codelibs.fess.db.exbhv.SearchLogBhv;
|
||||
import org.codelibs.fess.db.exbhv.UserInfoBhv;
|
||||
import org.codelibs.fess.db.exentity.ClickLog;
|
||||
import org.codelibs.fess.db.exentity.SearchFieldLog;
|
||||
import org.codelibs.fess.db.exentity.SearchLog;
|
||||
import org.codelibs.fess.db.exentity.UserInfo;
|
||||
import org.codelibs.fess.helper.DocumentHelper;
|
||||
|
@ -107,20 +106,21 @@ public class SearchLogHelperImpl extends SearchLogHelper {
|
|||
}
|
||||
searchLogList.add(searchLog);
|
||||
|
||||
if (suggestAvailable && searchLog.getHitCount() > 0) {
|
||||
final List<SearchFieldLog> searchFieldLogList = searchLog.getSearchFieldLogList();
|
||||
for (final SearchFieldLog searchFieldLog : searchFieldLogList) {
|
||||
if ("solrQuery".equals(searchFieldLog.getName())) {
|
||||
suggestService.addSolrParams(searchFieldLog.getValue(), dayForCleanup);
|
||||
addedSuggest = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// TODO
|
||||
// if (suggestAvailable && searchLog.getHitCount() > 0) {
|
||||
// final List<SearchFieldLog> searchFieldLogList = searchLog.getSearchFieldLogList();
|
||||
// for (final SearchFieldLog searchFieldLog : searchFieldLogList) {
|
||||
// if ("solrQuery".equals(searchFieldLog.getName())) {
|
||||
// suggestService.addSolrParams(searchFieldLog.getValue(), dayForCleanup);
|
||||
// addedSuggest = true;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
}
|
||||
if (addedSuggest) {
|
||||
suggestService.commit();
|
||||
}
|
||||
// if (addedSuggest) {
|
||||
// suggestService.commit();
|
||||
// }
|
||||
|
||||
if (!userInfoMap.isEmpty()) {
|
||||
final List<UserInfo> insertList = new ArrayList<UserInfo>(userInfoMap.values());
|
||||
|
|
|
@ -30,7 +30,7 @@ import org.apache.http.auth.Credentials;
|
|||
import org.apache.http.auth.UsernamePasswordCredentials;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.helper.WebManagementHelper;
|
||||
|
|
|
@ -27,7 +27,7 @@ import javax.servlet.ServletContext;
|
|||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.commons.lang.SystemUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.exec.Crawler;
|
||||
|
|
|
@ -24,7 +24,7 @@ import static org.quartz.TriggerBuilder.newTrigger;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exbhv.ScheduledJobBhv;
|
||||
import org.codelibs.fess.db.exentity.ScheduledJob;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
package org.codelibs.fess.job;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.service.CrawlingSessionService;
|
||||
import org.codelibs.fess.service.JobLogService;
|
||||
|
|
|
@ -16,12 +16,12 @@
|
|||
|
||||
package org.codelibs.fess.job.impl;
|
||||
|
||||
import groovy.lang.Binding;
|
||||
import groovy.lang.GroovyShell;
|
||||
|
||||
import org.codelibs.fess.job.JobExecutor;
|
||||
import org.seasar.framework.container.factory.SingletonS2ContainerFactory;
|
||||
|
||||
import groovy.lang.Binding;
|
||||
import groovy.lang.GroovyShell;
|
||||
|
||||
public class GroovyExecutor extends JobExecutor {
|
||||
|
||||
@Override
|
||||
|
|
|
@ -22,7 +22,7 @@ import java.time.format.DateTimeFormatter;
|
|||
import java.time.format.DateTimeParseException;
|
||||
import java.util.List;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
|
||||
public class StatsPager implements Serializable {
|
||||
|
|
|
@ -25,11 +25,8 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import jcifs.smb.ACE;
|
||||
import jcifs.smb.SID;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.db.exentity.CrawlingConfig;
|
||||
|
@ -51,6 +48,9 @@ import org.codelibs.robot.log.LogType;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jcifs.smb.ACE;
|
||||
import jcifs.smb.SID;
|
||||
|
||||
public class FessS2RobotThread extends S2RobotThread {
|
||||
private static final Logger logger = LoggerFactory.getLogger(FessS2RobotThread.class);
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.ServletContext;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.helper.FieldHelper;
|
||||
|
|
|
@ -27,20 +27,20 @@ import java.util.List;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.db.exbhv.ClickLogBhv;
|
||||
import org.codelibs.fess.db.exbhv.SearchLogBhv;
|
||||
import org.codelibs.fess.db.exentity.ClickLog;
|
||||
import org.codelibs.fess.db.exentity.SearchLog;
|
||||
import org.dbflute.bhv.readable.EntityRowHandler;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
public class ClickLogService implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
|
|
@ -30,14 +30,10 @@ import java.util.Set;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
|
@ -53,6 +49,10 @@ import org.dbflute.cbean.result.ListResultBean;
|
|||
import org.dbflute.cbean.result.PagingResultBean;
|
||||
import org.seasar.framework.beans.util.Beans;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
public class CrawlingSessionService implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
|
|
@ -35,8 +35,8 @@ import javax.ejb.TransactionAttribute;
|
|||
import javax.ejb.TransactionAttributeType;
|
||||
import javax.transaction.UserTransaction;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.db.exbhv.BoostDocumentRuleBhv;
|
||||
|
|
|
@ -27,8 +27,8 @@ import java.util.regex.Pattern;
|
|||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
|
|
|
@ -31,13 +31,10 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
import org.codelibs.fess.db.cbean.FavoriteLogCB;
|
||||
|
@ -54,6 +51,9 @@ import org.seasar.framework.beans.util.Beans;
|
|||
|
||||
import com.ibm.icu.text.SimpleDateFormat;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
public class FavoriteLogService implements Serializable {
|
||||
private static final Log log = LogFactory.getLog(FavoriteLogService.class);
|
||||
|
||||
|
|
|
@ -32,15 +32,10 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
import net.arnx.jsonic.JSON;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
|
@ -61,6 +56,11 @@ import org.seasar.framework.beans.util.Beans;
|
|||
|
||||
import com.ibm.icu.text.SimpleDateFormat;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
import net.arnx.jsonic.JSON;
|
||||
|
||||
public class SearchLogService implements Serializable {
|
||||
private static final Log log = LogFactory.getLog(SearchLogService.class);
|
||||
|
||||
|
|
|
@ -27,13 +27,9 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
import org.codelibs.fess.db.cbean.SuggestBadWordCB;
|
||||
|
@ -45,6 +41,10 @@ import org.dbflute.bhv.readable.EntityRowHandler;
|
|||
import org.dbflute.cbean.result.PagingResultBean;
|
||||
import org.seasar.framework.beans.util.Beans;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
public class SuggestBadWordService implements Serializable {
|
||||
|
||||
private static final String DELETE_PREFIX = "--";
|
||||
|
|
|
@ -28,13 +28,9 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
import org.codelibs.fess.db.cbean.SuggestElevateWordCB;
|
||||
|
@ -46,6 +42,10 @@ import org.dbflute.bhv.readable.EntityRowHandler;
|
|||
import org.dbflute.cbean.result.PagingResultBean;
|
||||
import org.seasar.framework.beans.util.Beans;
|
||||
|
||||
import jp.sf.orangesignal.csv.CsvConfig;
|
||||
import jp.sf.orangesignal.csv.CsvReader;
|
||||
import jp.sf.orangesignal.csv.CsvWriter;
|
||||
|
||||
public class SuggestElevateWordService implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.dict.DictionaryExpiredException;
|
||||
import org.codelibs.fess.dict.DictionaryFile;
|
||||
|
|
|
@ -21,7 +21,7 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.dict.DictionaryExpiredException;
|
||||
import org.codelibs.fess.dict.DictionaryFile;
|
||||
|
|
|
@ -22,7 +22,7 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
import org.codelibs.fess.db.cbean.UserInfoCB;
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
|
|
|
@ -30,7 +30,7 @@ import java.util.Map;
|
|||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.entity.FacetQueryView;
|
||||
import org.codelibs.fess.helper.HotSearchWordHelper;
|
||||
|
@ -46,8 +46,6 @@ public class FessFunctions {
|
|||
|
||||
private static final String FACET_PREFIX = "facet.";
|
||||
|
||||
private static final String MLT_PREFIX = "mlt.";
|
||||
|
||||
protected FessFunctions() {
|
||||
// nothing
|
||||
}
|
||||
|
|
|
@ -28,15 +28,12 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import jcifs.smb.ACE;
|
||||
import jcifs.smb.SID;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.tika.metadata.HttpHeaders;
|
||||
import org.apache.tika.metadata.TikaMetadataKeys;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.CrawlingConfig;
|
||||
import org.codelibs.fess.db.exentity.CrawlingConfig.ConfigName;
|
||||
|
@ -67,6 +64,9 @@ import org.seasar.framework.util.SerializeUtil;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import jcifs.smb.ACE;
|
||||
import jcifs.smb.SID;
|
||||
|
||||
public abstract class AbstractFessFileTransformer extends AbstractFessXpathTransformer {
|
||||
private static final Logger logger = LoggerFactory // NOPMD
|
||||
.getLogger(AbstractFessFileTransformer.class);
|
||||
|
|
|
@ -22,7 +22,7 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.helper.FieldHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.robot.transformer.impl.XpathTransformer;
|
||||
|
|
|
@ -35,7 +35,7 @@ import javax.xml.transform.TransformerException;
|
|||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.xpath.objects.XObject;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.db.exentity.CrawlingConfig;
|
||||
import org.codelibs.fess.db.exentity.CrawlingConfig.ConfigName;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
package org.codelibs.fess.util;
|
||||
|
||||
import org.codelibs.core.crypto.CachedCipher;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.api.WebApiManagerFactory;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.ds.DataStoreFactory;
|
||||
|
|
|
@ -19,7 +19,7 @@ package org.codelibs.fess.util;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.db.exentity.CrawlingConfig.ConfigName;
|
||||
|
||||
|
|
|
@ -23,7 +23,7 @@ import java.util.regex.Pattern;
|
|||
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.seasar.framework.container.SingletonS2Container;
|
||||
import org.seasar.struts.util.ServletContextUtil;
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ package org.codelibs.fess.util;
|
|||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
|
||||
public class SearchParamMap extends HashMap<String, String[]> {
|
||||
|
||||
|
|
113
src/main/java/org/codelibs/fess/util/UserDictCSVUtil.java
Normal file
113
src/main/java/org/codelibs/fess/util/UserDictCSVUtil.java
Normal file
|
@ -0,0 +1,113 @@
|
|||
package org.codelibs.fess.util;
|
||||
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
* contributor license agreements. See the NOTICE file distributed with
|
||||
* this work for additional information regarding copyright ownership.
|
||||
* The ASF licenses this file to You 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.
|
||||
*/
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* Utility class for parsing CSV text
|
||||
*/
|
||||
public final class UserDictCSVUtil {
|
||||
private static final char QUOTE = '"';
|
||||
|
||||
private static final char COMMA = ',';
|
||||
|
||||
private static final Pattern QUOTE_REPLACE_PATTERN = Pattern.compile("^\"([^\"]+)\"$");
|
||||
|
||||
private static final String ESCAPED_QUOTE = "\"\"";
|
||||
|
||||
private UserDictCSVUtil() {
|
||||
} // no instance!!!
|
||||
|
||||
/**
|
||||
* Parse CSV line
|
||||
* @param line line containing csv-encoded data
|
||||
* @return Array of values
|
||||
*/
|
||||
public static String[] parse(String line) {
|
||||
boolean insideQuote = false;
|
||||
ArrayList<String> result = new ArrayList<>();
|
||||
int quoteCount = 0;
|
||||
StringBuilder sb = new StringBuilder();
|
||||
for (int i = 0; i < line.length(); i++) {
|
||||
char c = line.charAt(i);
|
||||
|
||||
if (c == QUOTE) {
|
||||
insideQuote = !insideQuote;
|
||||
quoteCount++;
|
||||
}
|
||||
|
||||
if (c == COMMA && !insideQuote) {
|
||||
String value = sb.toString();
|
||||
value = unQuoteUnEscape(value);
|
||||
result.add(value);
|
||||
sb.setLength(0);
|
||||
continue;
|
||||
}
|
||||
|
||||
sb.append(c);
|
||||
}
|
||||
|
||||
result.add(sb.toString());
|
||||
|
||||
// Validate
|
||||
if (quoteCount % 2 != 0) {
|
||||
return new String[0];
|
||||
}
|
||||
|
||||
return result.toArray(new String[result.size()]);
|
||||
}
|
||||
|
||||
private static String unQuoteUnEscape(String original) {
|
||||
String result = original;
|
||||
|
||||
// Unquote
|
||||
if (result.indexOf('\"') >= 0) {
|
||||
Matcher m = QUOTE_REPLACE_PATTERN.matcher(original);
|
||||
if (m.matches()) {
|
||||
result = m.group(1);
|
||||
}
|
||||
|
||||
// Unescape
|
||||
if (result.indexOf(ESCAPED_QUOTE) >= 0) {
|
||||
result = result.replace(ESCAPED_QUOTE, "\"");
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Quote and escape input value for CSV
|
||||
*/
|
||||
public static String quoteEscape(String original) {
|
||||
String result = original;
|
||||
|
||||
if (result.indexOf('\"') >= 0) {
|
||||
result.replace("\"", ESCAPED_QUOTE);
|
||||
}
|
||||
if (result.indexOf(COMMA) >= 0) {
|
||||
result = "\"" + result + "\"";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
|
@ -22,7 +22,7 @@ import org.apache.commons.validator.Field;
|
|||
import org.apache.commons.validator.Validator;
|
||||
import org.apache.commons.validator.ValidatorAction;
|
||||
import org.apache.struts.action.ActionMessages;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.quartz.CronExpression;
|
||||
import org.seasar.struts.validator.S2FieldChecks;
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ import org.apache.commons.validator.Field;
|
|||
import org.apache.commons.validator.Validator;
|
||||
import org.apache.commons.validator.ValidatorAction;
|
||||
import org.apache.struts.action.ActionMessages;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.seasar.struts.validator.S2FieldChecks;
|
||||
|
||||
|
|
|
@ -47,16 +47,11 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import jp.sf.fess.suggest.Suggester;
|
||||
import jp.sf.fess.suggest.entity.SpellCheckResponse;
|
||||
import jp.sf.fess.suggest.entity.SuggestResponse;
|
||||
import jp.sf.fess.suggest.service.SuggestService;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.InvalidQueryException;
|
||||
import org.codelibs.fess.ResultOffsetExceededException;
|
||||
|
@ -169,12 +164,6 @@ public class IndexAction {
|
|||
@Resource
|
||||
protected FieldHelper fieldHelper;
|
||||
|
||||
@Resource
|
||||
protected Suggester suggester;
|
||||
|
||||
@Resource
|
||||
protected SuggestService suggestService;
|
||||
|
||||
@Resource
|
||||
protected DynamicProperties crawlerProperties;
|
||||
|
||||
|
@ -596,8 +585,8 @@ public class IndexAction {
|
|||
final String[] fieldNames = indexForm.fn;
|
||||
final String[] labels = indexForm.fields.get("label");
|
||||
|
||||
final List<SuggestResponse> suggestResultList = new ArrayList<SuggestResponse>();
|
||||
WebApiUtil.setObject("suggestResultList", suggestResultList);
|
||||
// final List<SuggestResponse> suggestResultList = new ArrayList<SuggestResponse>();
|
||||
// WebApiUtil.setObject("suggestResultList", suggestResultList);
|
||||
|
||||
final List<String> suggestFieldName = Arrays.asList(fieldNames);
|
||||
WebApiUtil.setObject("suggestFieldName", suggestFieldName);
|
||||
|
@ -617,12 +606,13 @@ public class IndexAction {
|
|||
roleSet = new HashSet<>();
|
||||
}
|
||||
|
||||
final SuggestResponse suggestResponse =
|
||||
suggestService.getSuggestResponse(indexForm.query, suggestFieldName, labelList, new ArrayList<String>(roleSet), num);
|
||||
|
||||
if (!suggestResponse.isEmpty()) {
|
||||
suggestResultList.add(suggestResponse);
|
||||
}
|
||||
// TODO
|
||||
// final SuggestResponse suggestResponse =
|
||||
// suggestService.getSuggestResponse(indexForm.query, suggestFieldName, labelList, new ArrayList<String>(roleSet), num);
|
||||
//
|
||||
// if (!suggestResponse.isEmpty()) {
|
||||
// suggestResultList.add(suggestResponse);
|
||||
// }
|
||||
|
||||
WebApiUtil.setObject("suggestRecordCount", 1);
|
||||
} catch (final Exception e) {
|
||||
|
@ -631,71 +621,6 @@ public class IndexAction {
|
|||
return null;
|
||||
}
|
||||
|
||||
@Execute(validator = false)
|
||||
public String spellCheckApi() {
|
||||
if (Constants.FALSE.equals(crawlerProperties.getProperty(Constants.WEB_API_SPELLCHECK_PROPERTY, Constants.TRUE))) {
|
||||
WebApiUtil.setError(9, "Unsupported operation.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (indexForm.fn == null || indexForm.fn.length == 0) {
|
||||
WebApiUtil.setError(2, "The field name is empty.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (StringUtil.isBlank(indexForm.query)) {
|
||||
WebApiUtil.setError(3, "Your query is empty.");
|
||||
return null;
|
||||
}
|
||||
|
||||
if (StringUtil.isBlank(indexForm.num)) {
|
||||
indexForm.num = String.valueOf(DEFAULT_SPELLCHECK_PAGE_SIZE);
|
||||
}
|
||||
|
||||
int num = Integer.parseInt(indexForm.num);
|
||||
if (num > getMaxPageSize()) {
|
||||
num = getMaxPageSize();
|
||||
}
|
||||
|
||||
final String[] fieldNames = indexForm.fn;
|
||||
final String[] labels = indexForm.fields.get("label");
|
||||
|
||||
final List<SpellCheckResponse> spellCheckResultList = new ArrayList<SpellCheckResponse>();
|
||||
WebApiUtil.setObject("spellCheckResultList", spellCheckResultList);
|
||||
|
||||
final List<String> spellCheckFieldName = Arrays.asList(fieldNames);
|
||||
WebApiUtil.setObject("spellCheckFieldName", spellCheckFieldName);
|
||||
|
||||
final List<String> labelList;
|
||||
if (labels == null) {
|
||||
labelList = new ArrayList<String>();
|
||||
} else {
|
||||
labelList = Arrays.asList(labels);
|
||||
}
|
||||
|
||||
try {
|
||||
final Set<String> roleSet;
|
||||
if (roleQueryHelper != null) {
|
||||
roleSet = roleQueryHelper.build();
|
||||
} else {
|
||||
roleSet = new HashSet<>();
|
||||
}
|
||||
|
||||
final SpellCheckResponse spellCheckResponse =
|
||||
suggestService.getSpellCheckResponse(indexForm.query, spellCheckFieldName, labelList, new ArrayList<String>(roleSet),
|
||||
num);
|
||||
|
||||
if (!spellCheckResponse.isEmpty()) {
|
||||
spellCheckResultList.add(spellCheckResponse);
|
||||
}
|
||||
|
||||
WebApiUtil.setObject("spellCheckRecordCount", 1);
|
||||
} catch (final Exception e) {
|
||||
WebApiUtil.setError(1, e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Execute(validator = false)
|
||||
public String hotSearchWordApi() {
|
||||
if (Constants.FALSE.equals(crawlerProperties.getProperty(Constants.WEB_API_HOT_SEARCH_WORD_PROPERTY, Constants.TRUE))) {
|
||||
|
|
|
@ -31,7 +31,7 @@ import javax.servlet.http.HttpSession;
|
|||
|
||||
import org.apache.struts.Globals;
|
||||
import org.codelibs.core.crypto.CachedCipher;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.entity.LoginInfo;
|
||||
|
|
|
@ -24,8 +24,8 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
|
|
|
@ -37,7 +37,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
|
|
|
@ -29,8 +29,8 @@ import javax.annotation.Resource;
|
|||
|
||||
import org.apache.commons.io.FileUtils;
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
|
|
|
@ -24,11 +24,6 @@ import java.util.Set;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import jp.sf.fess.suggest.SuggestConstants;
|
||||
import jp.sf.fess.suggest.server.SuggestSolrServer;
|
||||
import jp.sf.fess.suggest.service.SuggestService;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
import org.codelibs.fess.helper.FieldHelper;
|
||||
|
@ -81,9 +76,6 @@ public class DocumentAction implements Serializable {
|
|||
@Resource
|
||||
protected JobHelper jobHelper;
|
||||
|
||||
@Resource
|
||||
protected SuggestService suggestService;
|
||||
|
||||
public Map<String, Long> suggestDocumentNums;
|
||||
|
||||
public String getHelpLink() {
|
||||
|
@ -205,15 +197,17 @@ public class DocumentAction implements Serializable {
|
|||
|
||||
protected Map<String, Long> getSuggestDocumentNum() {
|
||||
final Map<String, Long> map = new HashMap<String, Long>();
|
||||
map.put(SUGGEST_TYPE_CONTENT, suggestService.getContentDocumentNum());
|
||||
map.put(SUGGEST_TYPE_SEARCH_LOG, suggestService.getSearchLogDocumentNum());
|
||||
map.put(SUGGEST_TYPE_ALL, suggestService.getDocumentNum());
|
||||
// map.put(SUGGEST_TYPE_CONTENT, suggestService.getContentDocumentNum());
|
||||
// map.put(SUGGEST_TYPE_SEARCH_LOG, suggestService.getSearchLogDocumentNum());
|
||||
// map.put(SUGGEST_TYPE_ALL, suggestService.getDocumentNum());
|
||||
return map;
|
||||
}
|
||||
|
||||
@Token(save = false, validate = true)
|
||||
@Execute(validator = true, input = "index")
|
||||
public String deleteSuggest() {
|
||||
// TODO
|
||||
/*
|
||||
final SuggestSolrServer suggestSolrServer = suggestService.getSuggestSolrServer();
|
||||
final String query;
|
||||
if (SUGGEST_TYPE_CONTENT.equals(documentForm.deleteSuggestType)) {
|
||||
|
@ -227,8 +221,6 @@ public class DocumentAction implements Serializable {
|
|||
}
|
||||
|
||||
if (StringUtil.isNotBlank(query)) {
|
||||
// TODO
|
||||
/*
|
||||
final Thread thread = new Thread(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
|
@ -252,8 +244,8 @@ public class DocumentAction implements Serializable {
|
|||
});
|
||||
thread.start();
|
||||
SAStrutsUtil.addSessionMessage("success.delete_solr_index");
|
||||
*/
|
||||
}
|
||||
*/
|
||||
return showIndex(true);
|
||||
}
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.beans.FessBeans;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
|
|
|
@ -34,7 +34,7 @@ import java.util.Map;
|
|||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.codec.binary.Base64;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
|
|
|
@ -24,8 +24,8 @@ import java.util.Map;
|
|||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.InvalidQueryException;
|
||||
import org.codelibs.fess.ResultOffsetExceededException;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
|
|
|
@ -28,7 +28,7 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
|
|
|
@ -24,7 +24,7 @@ import javax.annotation.Resource;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.codelibs.fess.pager.StatsPager;
|
||||
|
|
|
@ -20,7 +20,7 @@ import java.io.Serializable;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.seasar.struts.annotation.IntegerType;
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.beans.FessBeans;
|
||||
|
|
|
@ -35,7 +35,7 @@ import javax.annotation.Resource;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.FessSystemException;
|
||||
import org.codelibs.fess.beans.FessBeans;
|
||||
|
|
|
@ -26,7 +26,7 @@ import java.util.Set;
|
|||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.client.SearchClient;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
import org.codelibs.fess.db.exentity.ScheduledJob;
|
||||
|
|
|
@ -24,8 +24,8 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.seasar.struts.annotation.ActionForm;
|
||||
|
|
|
@ -24,7 +24,7 @@ import java.util.Map;
|
|||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.beans.FessBeans;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
|
|
|
@ -22,7 +22,7 @@ import java.util.Date;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.annotation.UriType;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
|
|
|
@ -26,8 +26,8 @@ import java.util.List;
|
|||
import javax.annotation.Resource;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.codelibs.core.util.DynamicProperties;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.core.misc.DynamicProperties;
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
import org.codelibs.fess.db.exentity.FileCrawlingConfig;
|
||||
|
|
|
@ -28,7 +28,7 @@ import javax.annotation.Resource;
|
|||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
|
|
|
@ -26,7 +26,7 @@ import javax.annotation.Resource;
|
|||
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.codelibs.core.util.StringUtil;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.crud.CommonConstants;
|
||||
import org.codelibs.fess.crud.CrudMessageException;
|
||||
import org.codelibs.fess.crud.util.SAStrutsUtil;
|
||||
|
|
28
src/main/java/org/codelibs/sastruts/core/SSCConstants.java
Normal file
28
src/main/java/org/codelibs/sastruts/core/SSCConstants.java
Normal file
|
@ -0,0 +1,28 @@
|
|||
/*
|
||||
* Copyright 2012 the CodeLibs Project and the Others.
|
||||
*
|
||||
* 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.codelibs.sastruts.core;
|
||||
|
||||
import org.codelibs.core.CoreLibConstants;
|
||||
|
||||
public class SSCConstants extends CoreLibConstants {
|
||||
|
||||
public static final String USER_INFO = "LoginInfo";
|
||||
|
||||
public static final String RETURN_PATH = "ReturnPath";
|
||||
|
||||
protected SSCConstants() {
|
||||
}
|
||||
}
|
|
@ -0,0 +1,178 @@
|
|||
/*
|
||||
* Copyright 2012 the CodeLibs Project and the Others.
|
||||
*
|
||||
* 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.codelibs.sastruts.core.action;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
import org.apache.struts.Globals;
|
||||
import org.codelibs.core.crypto.CachedCipher;
|
||||
import org.codelibs.sastruts.core.SSCConstants;
|
||||
import org.codelibs.sastruts.core.entity.UserInfo;
|
||||
import org.codelibs.sastruts.core.exception.LoginException;
|
||||
import org.codelibs.sastruts.core.form.AbstractLoginForm;
|
||||
import org.codelibs.sastruts.core.util.ActivityUtil;
|
||||
import org.seasar.framework.log.Logger;
|
||||
import org.seasar.framework.util.StringUtil;
|
||||
import org.seasar.struts.util.ResponseUtil;
|
||||
|
||||
public abstract class AbstractLoginAction implements Serializable {
|
||||
private static final Logger logger = Logger.getLogger(AbstractLoginAction.class);
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@Resource
|
||||
protected HttpServletRequest request;
|
||||
|
||||
@Resource
|
||||
protected CachedCipher authCipher;
|
||||
|
||||
protected String doIndex(final AbstractLoginForm form) {
|
||||
HttpSession session = request.getSession(false);
|
||||
// check login session
|
||||
final Object obj = session == null ? null : session.getAttribute(SSCConstants.USER_INFO);
|
||||
if (obj instanceof UserInfo) {
|
||||
redirect(getAuthRootPath());
|
||||
return null;
|
||||
}
|
||||
|
||||
String params = null;
|
||||
if ("forbidden".equals(form.type)) {
|
||||
// invalid user
|
||||
if (logger.isInfoEnabled()) {
|
||||
logger.log("ISSC0001", new Object[] { request.getRemoteUser() });
|
||||
}
|
||||
if (session != null) {
|
||||
session = invalidateSession(session);
|
||||
}
|
||||
params = "msgs=error.login_error";
|
||||
}
|
||||
|
||||
if (session == null) {
|
||||
session = request.getSession();
|
||||
}
|
||||
|
||||
String path;
|
||||
if (StringUtil.isNotBlank(form.returnPath)) {
|
||||
final String value = authCipher.decryptoText(form.returnPath);
|
||||
final int idx = value.indexOf('|');
|
||||
if (idx >= 0) {
|
||||
path = value.substring(idx + 1);
|
||||
session.setAttribute(SSCConstants.RETURN_PATH, path);
|
||||
} else {
|
||||
// invalid returnPathName
|
||||
session.removeAttribute(SSCConstants.RETURN_PATH);
|
||||
}
|
||||
} else {
|
||||
session.removeAttribute(SSCConstants.RETURN_PATH);
|
||||
}
|
||||
|
||||
return getLoginPath(params);
|
||||
}
|
||||
|
||||
protected String doLogin(final AbstractLoginForm form) {
|
||||
final HttpSession oldSession = request.getSession();
|
||||
|
||||
final HttpSession session = invalidateSession(oldSession);
|
||||
|
||||
session.removeAttribute(Globals.MESSAGE_KEY);
|
||||
|
||||
// create user info
|
||||
final UserInfo loginInfo = new UserInfo();
|
||||
loginInfo.setUsername(request.getRemoteUser());
|
||||
session.setAttribute(SSCConstants.USER_INFO, loginInfo);
|
||||
|
||||
String returnPath = (String) session.getAttribute(SSCConstants.RETURN_PATH);
|
||||
if (returnPath != null) {
|
||||
session.removeAttribute(SSCConstants.RETURN_PATH);
|
||||
} else {
|
||||
// admin page
|
||||
returnPath = getAuthRootPath();
|
||||
}
|
||||
|
||||
ActivityUtil.login(loginInfo.getUsername(), request);
|
||||
|
||||
redirect(returnPath);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private HttpSession invalidateSession(final HttpSession oldSession) {
|
||||
final Map<String, Object> sessionObjMap = new HashMap<String, Object>();
|
||||
@SuppressWarnings("unchecked")
|
||||
final Enumeration<String> e = oldSession.getAttributeNames();
|
||||
while (e.hasMoreElements()) {
|
||||
final String name = e.nextElement();
|
||||
sessionObjMap.put(name, oldSession.getAttribute(name));
|
||||
}
|
||||
oldSession.invalidate();
|
||||
|
||||
final HttpSession session = request.getSession();
|
||||
for (final Map.Entry<String, Object> entry : sessionObjMap.entrySet()) {
|
||||
session.setAttribute(entry.getKey(), entry.getValue());
|
||||
}
|
||||
return session;
|
||||
}
|
||||
|
||||
protected String doLogout(final AbstractLoginForm form) {
|
||||
ActivityUtil.login(request.getRemoteUser(), request);
|
||||
|
||||
final HttpSession session = request.getSession();
|
||||
session.invalidate();
|
||||
|
||||
return getLoginPath(null);
|
||||
}
|
||||
|
||||
protected String getDefaultPath() {
|
||||
return "/index?redirect=true";
|
||||
}
|
||||
|
||||
protected String getLoginPath(final String params) {
|
||||
final StringBuilder buf = new StringBuilder();
|
||||
buf.append("login?");
|
||||
if (params != null && params.length() > 0) {
|
||||
buf.append(params).append('&');
|
||||
}
|
||||
buf.append("redirect=true");
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
protected String getAuthRootPath() {
|
||||
final String contextPath = request.getContextPath();
|
||||
if (StringUtil.isEmpty(contextPath) || "/".equals(contextPath)) {
|
||||
return "/admin/";
|
||||
} else {
|
||||
return contextPath + "/admin/";
|
||||
}
|
||||
}
|
||||
|
||||
protected void redirect(final String returnPath) {
|
||||
final HttpServletResponse response = ResponseUtil.getResponse();
|
||||
try {
|
||||
response.sendRedirect(response.encodeURL(returnPath));
|
||||
} catch (final IOException e) {
|
||||
throw new LoginException("ESSC0002", new Object[] { returnPath }, e);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
/*
|
||||
* Copyright 2012 the CodeLibs Project and the Others.
|
||||
*
|
||||
* 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.codelibs.sastruts.core.annotation;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.lang.annotation.Target;
|
||||
|
||||
/**
|
||||
* @author shinsuke
|
||||
*
|
||||
*/
|
||||
@Target(ElementType.METHOD)
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
public @interface Token {
|
||||
boolean save();
|
||||
|
||||
boolean validate();
|
||||
|
||||
boolean keep() default false;
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue