fix #768 add job targets

This commit is contained in:
Shinsuke Sugaya 2016-11-04 23:59:29 +09:00
parent ace8d86c13
commit 1c8cc5b0c4
14 changed files with 300 additions and 13 deletions

View file

@ -975,6 +975,10 @@
"createdTime" : {
"type" : "long"
},
"target" : {
"type" : "string",
"index" : "not_analyzed"
},
"generator" : {
"type" : "string",
"index" : "not_analyzed"

View file

@ -404,4 +404,6 @@ public class Constants extends CoreLibConstants {
public static final String PERMISSIONS = "permissions";
public static final String CIPHER_PREFIX = "{cipher}";
public static final String SYSTEM_USER = "system";
}

View file

@ -123,11 +123,11 @@ public class BadWordService {
} else if (badWord == null) {
badWord = new BadWord();
badWord.setSuggestWord(targetWord);
badWord.setCreatedBy("system");
badWord.setCreatedBy(Constants.SYSTEM_USER);
badWord.setCreatedTime(now);
badWordBhv.insert(badWord);
} else {
badWord.setUpdatedBy("system");
badWord.setUpdatedBy(Constants.SYSTEM_USER);
badWord.setUpdatedTime(now);
badWordBhv.update(badWord);
}

View file

@ -221,7 +221,7 @@ public class ElevateWordService {
elevateWord.setPermissions(permissions);
elevateWord.setTargetLabel(label);
elevateWord.setBoost(StringUtil.isBlank(boost) ? 1.0f : Float.parseFloat(boost));
elevateWord.setCreatedBy("system");
elevateWord.setCreatedBy(Constants.SYSTEM_USER);
elevateWord.setCreatedTime(now);
elevateWordBhv.insert(elevateWord);
} else if (StringUtil.isBlank(reading) && StringUtil.isBlank(boost)) {
@ -230,7 +230,7 @@ public class ElevateWordService {
elevateWord.setReading(reading);
elevateWord.setPermissions(permissions);
elevateWord.setBoost(StringUtil.isBlank(boost) ? 1.0f : Float.parseFloat(boost));
elevateWord.setUpdatedBy("system");
elevateWord.setUpdatedBy(Constants.SYSTEM_USER);
elevateWord.setUpdatedTime(now);
elevateWordBhv.update(elevateWord);
}

View file

@ -75,6 +75,7 @@ public abstract class BsThumbnailQueueBhv extends EsAbstractBehavior<ThumbnailQu
final RESULT result = entityType.newInstance();
result.setCreatedBy(DfTypeUtil.toString(source.get("createdBy")));
result.setCreatedTime(DfTypeUtil.toLong(source.get("createdTime")));
result.setTarget(DfTypeUtil.toString(source.get("target")));
result.setGenerator(DfTypeUtil.toString(source.get("generator")));
result.setPath(DfTypeUtil.toString(source.get("path")));
result.setUrl(DfTypeUtil.toString(source.get("url")));

View file

@ -43,6 +43,9 @@ public class BsThumbnailQueue extends EsAbstractEntity {
/** createdTime */
protected Long createdTime;
/** target */
protected String target;
/** generator */
protected String generator;
@ -79,6 +82,9 @@ public class BsThumbnailQueue extends EsAbstractEntity {
if (createdTime != null) {
sourceMap.put("createdTime", createdTime);
}
if (target != null) {
sourceMap.put("target", target);
}
if (generator != null) {
sourceMap.put("generator", generator);
}
@ -99,6 +105,7 @@ public class BsThumbnailQueue extends EsAbstractEntity {
StringBuilder sb = new StringBuilder();
sb.append(dm).append(createdBy);
sb.append(dm).append(createdTime);
sb.append(dm).append(target);
sb.append(dm).append(generator);
sb.append(dm).append(path);
sb.append(dm).append(url);
@ -132,6 +139,16 @@ public class BsThumbnailQueue extends EsAbstractEntity {
this.createdTime = value;
}
public String getTarget() {
checkSpecifiedProperty("target");
return convertEmptyToNull(target);
}
public void setTarget(String value) {
registerModifiedProperty("target");
this.target = value;
}
public String getGenerator() {
checkSpecifiedProperty("generator");
return convertEmptyToNull(generator);

View file

@ -83,6 +83,8 @@ public class ThumbnailQueueDbm extends AbstractDBMeta {
(et, vl) -> ((ThumbnailQueue) et).setCreatedBy(DfTypeUtil.toString(vl)), "createdBy");
setupEpg(_epgMap, et -> ((ThumbnailQueue) et).getCreatedTime(),
(et, vl) -> ((ThumbnailQueue) et).setCreatedTime(DfTypeUtil.toLong(vl)), "createdTime");
setupEpg(_epgMap, et -> ((ThumbnailQueue) et).getTarget(), (et, vl) -> ((ThumbnailQueue) et).setTarget(DfTypeUtil.toString(vl)),
"target");
setupEpg(_epgMap, et -> ((ThumbnailQueue) et).getGenerator(),
(et, vl) -> ((ThumbnailQueue) et).setGenerator(DfTypeUtil.toString(vl)), "generator");
setupEpg(_epgMap, et -> ((ThumbnailQueue) et).getPath(), (et, vl) -> ((ThumbnailQueue) et).setPath(DfTypeUtil.toString(vl)), "path");
@ -127,6 +129,8 @@ public class ThumbnailQueueDbm extends AbstractDBMeta {
false, "String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnCreatedTime = cci("createdTime", "createdTime", null, null, Long.class, "createdTime", null, false,
false, false, "Long", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnTarget = cci("target", "target", null, null, String.class, "target", null, false, false, false,
"String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnGenerator = cci("generator", "generator", null, null, String.class, "generator", null, false, false,
false, "String", 0, 0, null, false, null, null, null, null, null, false);
protected final ColumnInfo _columnPath = cci("path", "path", null, null, String.class, "path", null, false, false, false, "String", 0,
@ -142,6 +146,10 @@ public class ThumbnailQueueDbm extends AbstractDBMeta {
return _columnCreatedTime;
}
public ColumnInfo columnTarget() {
return _columnTarget;
}
public ColumnInfo columnGenerator() {
return _columnGenerator;
}
@ -158,6 +166,7 @@ public class ThumbnailQueueDbm extends AbstractDBMeta {
List<ColumnInfo> ls = newArrayList();
ls.add(columnCreatedBy());
ls.add(columnCreatedTime());
ls.add(columnTarget());
ls.add(columnGenerator());
ls.add(columnPath());
ls.add(columnUrl());

View file

@ -155,6 +155,10 @@ public class BsThumbnailQueueCB extends EsAbstractConditionBean {
doColumn("createdTime");
}
public void columnTarget() {
doColumn("target");
}
public void columnGenerator() {
doColumn("generator");
}

View file

@ -543,6 +543,213 @@ public abstract class BsThumbnailQueueCQ extends EsAbstractConditionQuery {
return this;
}
public void setTarget_Equal(String target) {
setTarget_Term(target, null);
}
public void setTarget_Equal(String target, ConditionOptionCall<TermQueryBuilder> opLambda) {
setTarget_Term(target, opLambda);
}
public void setTarget_Term(String target) {
setTarget_Term(target, null);
}
public void setTarget_Term(String target, ConditionOptionCall<TermQueryBuilder> opLambda) {
TermQueryBuilder builder = regTermQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_NotEqual(String target) {
setTarget_NotTerm(target, null);
}
public void setTarget_NotTerm(String target) {
setTarget_NotTerm(target, null);
}
public void setTarget_NotEqual(String target, ConditionOptionCall<BoolQueryBuilder> opLambda) {
setTarget_NotTerm(target, opLambda);
}
public void setTarget_NotTerm(String target, ConditionOptionCall<BoolQueryBuilder> opLambda) {
not(not -> not.setTarget_Term(target), opLambda);
}
public void setTarget_Terms(Collection<String> targetList) {
setTarget_Terms(targetList, null);
}
public void setTarget_Terms(Collection<String> targetList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
TermsQueryBuilder builder = regTermsQ("target", targetList);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_InScope(Collection<String> targetList) {
setTarget_Terms(targetList, null);
}
public void setTarget_InScope(Collection<String> targetList, ConditionOptionCall<TermsQueryBuilder> opLambda) {
setTarget_Terms(targetList, opLambda);
}
public void setTarget_Match(String target) {
setTarget_Match(target, null);
}
public void setTarget_Match(String target, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_MatchPhrase(String target) {
setTarget_MatchPhrase(target, null);
}
public void setTarget_MatchPhrase(String target, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhraseQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_MatchPhrasePrefix(String target) {
setTarget_MatchPhrasePrefix(target, null);
}
public void setTarget_MatchPhrasePrefix(String target, ConditionOptionCall<MatchQueryBuilder> opLambda) {
MatchQueryBuilder builder = regMatchPhrasePrefixQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_Fuzzy(String target) {
setTarget_Fuzzy(target, null);
}
public void setTarget_Fuzzy(String target, ConditionOptionCall<FuzzyQueryBuilder> opLambda) {
FuzzyQueryBuilder builder = regFuzzyQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_Prefix(String target) {
setTarget_Prefix(target, null);
}
public void setTarget_Prefix(String target, ConditionOptionCall<PrefixQueryBuilder> opLambda) {
PrefixQueryBuilder builder = regPrefixQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_Wildcard(String target) {
setTarget_Wildcard(target, null);
}
public void setTarget_Wildcard(String target, ConditionOptionCall<WildcardQueryBuilder> opLambda) {
WildcardQueryBuilder builder = regWildcardQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_Regexp(String target) {
setTarget_Regexp(target, null);
}
public void setTarget_Regexp(String target, ConditionOptionCall<RegexpQueryBuilder> opLambda) {
RegexpQueryBuilder builder = regRegexpQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_GreaterThan(String target) {
setTarget_GreaterThan(target, null);
}
public void setTarget_GreaterThan(String target, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("target", ConditionKey.CK_GREATER_THAN, target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_LessThan(String target) {
setTarget_LessThan(target, null);
}
public void setTarget_LessThan(String target, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("target", ConditionKey.CK_LESS_THAN, target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_GreaterEqual(String target) {
setTarget_GreaterEqual(target, null);
}
public void setTarget_GreaterEqual(String target, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("target", ConditionKey.CK_GREATER_EQUAL, target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_LessEqual(String target) {
setTarget_LessEqual(target, null);
}
public void setTarget_LessEqual(String target, ConditionOptionCall<RangeQueryBuilder> opLambda) {
RangeQueryBuilder builder = regRangeQ("target", ConditionKey.CK_LESS_EQUAL, target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_Exists() {
setTarget_Exists(null);
}
public void setTarget_Exists(ConditionOptionCall<ExistsQueryBuilder> opLambda) {
ExistsQueryBuilder builder = regExistsQ("target");
if (opLambda != null) {
opLambda.callback(builder);
}
}
public void setTarget_CommonTerms(String target) {
setTarget_CommonTerms(target, null);
}
public void setTarget_CommonTerms(String target, ConditionOptionCall<CommonTermsQueryBuilder> opLambda) {
CommonTermsQueryBuilder builder = regCommonTermsQ("target", target);
if (opLambda != null) {
opLambda.callback(builder);
}
}
public BsThumbnailQueueCQ addOrderBy_Target_Asc() {
regOBA("target");
return this;
}
public BsThumbnailQueueCQ addOrderBy_Target_Desc() {
regOBD("target");
return this;
}
public void setGenerator_Equal(String generator) {
setGenerator_Term(generator, null);
}

View file

@ -652,6 +652,9 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
/** The key of the configuration. e.g. true */
String THUMBNAIL_HTML_PHANTOMJS_ENABLED = "thumbnail.html.phantomjs.enabled";
/** The key of the configuration. e.g. all */
String THUMBNAIL_GENERATOR_TARGETS = "thumbnail.generator.targets";
/** The key of the configuration. e.g. Administrator */
String MAIL_FROM_NAME = "mail.from.name";
@ -3163,6 +3166,13 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
*/
boolean isThumbnailHtmlPhantomjsEnabled();
/**
* Get the value for the key 'thumbnail.generator.targets'. <br>
* The value is, e.g. all <br>
* @return The value of found property. (NotNull: if not found, exception but basically no way)
*/
String getThumbnailGeneratorTargets();
/**
* Get the value for the key 'mail.from.name'. <br>
* The value is, e.g. Administrator <br>
@ -5398,6 +5408,10 @@ public interface FessConfig extends FessEnv, org.codelibs.fess.mylasta.direction
return is(FessConfig.THUMBNAIL_HTML_PHANTOMJS_ENABLED);
}
public String getThumbnailGeneratorTargets() {
return get(FessConfig.THUMBNAIL_GENERATOR_TARGETS);
}
public String getMailFromName() {
return get(FessConfig.MAIL_FROM_NAME);
}

View file

@ -1438,4 +1438,12 @@ public interface FessProp {
stream -> stream.filter(StringUtil::isNotBlank).map(s -> s.trim()).forEach(list::add));
return list.toArray(new String[list.size()]);
}
String getThumbnailGeneratorTargets();
public default String[] getThumbnailGeneratorTargetsAsArray() {
return getThumbnailGeneratorTargets().split(",");
}
}

View file

@ -29,7 +29,6 @@ import java.util.Map;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
@ -45,6 +44,7 @@ import org.codelibs.fess.es.config.exbhv.ThumbnailQueueBhv;
import org.codelibs.fess.es.config.exentity.ThumbnailQueue;
import org.codelibs.fess.exception.FessSystemException;
import org.codelibs.fess.exception.JobProcessingException;
import org.codelibs.fess.helper.SystemHelper;
import org.codelibs.fess.mylasta.direction.FessConfig;
import org.codelibs.fess.util.ComponentUtil;
import org.codelibs.fess.util.DocumentUtil;
@ -52,6 +52,8 @@ import org.lastaflute.web.util.LaRequestUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.common.collect.Lists;
public class ThumbnailManager {
private static final String DEFAULT_SCREENSHOT_DIR = "/WEB-INF/thumbnails";
@ -121,7 +123,7 @@ public class ThumbnailManager {
if (!taskList.isEmpty()) {
storeQueue(taskList);
}
} else {
} else if (!taskList.contains(task)) {
taskList.add(task);
if (taskList.size() > thumbnailTaskBulkSize) {
storeQueue(taskList);
@ -158,13 +160,22 @@ public class ThumbnailManager {
}
protected void storeQueue(final List<Tuple3<String, String, String>> taskList) {
List<ThumbnailQueue> list = taskList.stream().filter(entity -> entity != null).map(task -> {
ThumbnailQueue entity = new ThumbnailQueue();
entity.setGenerator(task.getValue1());
entity.setUrl(task.getValue2());
entity.setPath(task.getValue3());
return entity;
}).collect(Collectors.toList());
final FessConfig fessConfig = ComponentUtil.getFessConfig();
final SystemHelper systemHelper = ComponentUtil.getSystemHelper();
final String[] targets = fessConfig.getThumbnailGeneratorTargetsAsArray();
final List<ThumbnailQueue> list = new ArrayList<>();
taskList.stream().filter(entity -> entity != null).forEach(task -> {
for (final String target : targets) {
ThumbnailQueue entity = new ThumbnailQueue();
entity.setGenerator(task.getValue1());
entity.setUrl(task.getValue2());
entity.setPath(task.getValue3());
entity.setTarget(target);
entity.setCreatedBy(Constants.SYSTEM_USER);
entity.setCreatedTime(systemHelper.getCurrentTimeAsLong());
list.add(entity);
}
});
taskList.clear();
final ThumbnailQueueBhv thumbnailQueueBhv = ComponentUtil.getComponent(ThumbnailQueueBhv.class);
thumbnailQueueBhv.batchInsert(list);
@ -175,6 +186,11 @@ public class ThumbnailManager {
final List<String> idList = new ArrayList<>();
final ThumbnailQueueBhv thumbnailQueueBhv = ComponentUtil.getComponent(ThumbnailQueueBhv.class);
thumbnailQueueBhv.selectList(cb -> {
if (StringUtil.isBlank(fessConfig.getSchedulerTargetName())) {
cb.query().setTarget_Equal(Constants.DEFAULT_JOB_TARGET);
} else {
cb.query().setTarget_InScope(Lists.newArrayList(Constants.DEFAULT_JOB_TARGET, fessConfig.getSchedulerTargetName()));
}
cb.query().addOrderBy_CreatedTime_Asc();
cb.fetchFirst(fessConfig.getPageThumbnailQueueMaxFetchSizeAsInteger());
}).forEach(entity -> {

View file

@ -349,6 +349,7 @@ paging.search.page.size=20
paging.search.page.max.size=100
thumbnail.html.phantomjs.enabled=true
thumbnail.generator.targets=all
# ----------------------------------------------------------
# Mail

View file

@ -19,6 +19,10 @@
"type": "string",
"index": "not_analyzed"
},
"target": {
"type": "string",
"index": "not_analyzed"
},
"createdTime": {
"type": "long"
},