fix #510 : stream api refactoring
This commit is contained in:
parent
7c03aae79d
commit
cee5a02e9e
41 changed files with 365 additions and 386 deletions
4
pom.xml
4
pom.xml
|
@ -60,7 +60,7 @@
|
|||
<crawler.version>1.0.9-SNAPSHOT</crawler.version>
|
||||
|
||||
<!-- Suggest -->
|
||||
<suggest.version>2.1.4-SNAPSHOT</suggest.version>
|
||||
<suggest.version>2.2.0-SNAPSHOT</suggest.version>
|
||||
|
||||
<!-- Elasticsearch -->
|
||||
<elasticsearch.version>2.3.2</elasticsearch.version>
|
||||
|
@ -1054,7 +1054,7 @@
|
|||
<dependency>
|
||||
<groupId>org.codelibs</groupId>
|
||||
<artifactId>corelib</artifactId>
|
||||
<version>0.3.4</version>
|
||||
<version>0.3.5-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>commons-io</groupId>
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.api.suggest;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
@ -34,7 +36,6 @@ import org.codelibs.fess.suggest.entity.SuggestItem;
|
|||
import org.codelibs.fess.suggest.request.suggest.SuggestRequestBuilder;
|
||||
import org.codelibs.fess.suggest.request.suggest.SuggestResponse;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -69,7 +70,7 @@ public class SuggestApiManager extends BaseApiManager {
|
|||
final SuggestHelper suggestHelper = ComponentUtil.getSuggestHelper();
|
||||
final SuggestRequestBuilder builder = suggestHelper.suggester().suggest();
|
||||
builder.setQuery(parameter.getQuery());
|
||||
StreamUtil.of(parameter.getFields()).forEach(field -> builder.addField(field));
|
||||
stream(parameter.getFields()).of(stream -> stream.forEach(field -> builder.addField(field)));
|
||||
roleQueryHelper.build().stream().forEach(role -> builder.addRole(role));
|
||||
builder.setSize(parameter.getNum());
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.service;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -29,7 +31,6 @@ import org.codelibs.fess.es.user.exbhv.UserBhv;
|
|||
import org.codelibs.fess.es.user.exentity.Group;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.cbean.result.PagingResultBean;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
|
||||
|
@ -85,12 +86,15 @@ public class GroupService implements Serializable {
|
|||
op.setRefresh(true);
|
||||
});
|
||||
|
||||
userBhv.selectCursor(cb -> {
|
||||
cb.query().setGroups_Equal(group.getId());
|
||||
}, entity -> {
|
||||
entity.setGroups(StreamUtil.of(entity.getGroups()).filter(s -> !s.equals(group.getId())).toArray(n -> new String[n]));
|
||||
userBhv.insertOrUpdate(entity);
|
||||
});
|
||||
userBhv.selectCursor(
|
||||
cb -> {
|
||||
cb.query().setGroups_Equal(group.getId());
|
||||
},
|
||||
entity -> {
|
||||
entity.setGroups(stream(entity.getGroups()).get(
|
||||
stream -> stream.filter(s -> !s.equals(group.getId())).toArray(n -> new String[n])));
|
||||
userBhv.insertOrUpdate(entity);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.service;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
@ -29,7 +31,6 @@ import org.codelibs.fess.es.user.exbhv.UserBhv;
|
|||
import org.codelibs.fess.es.user.exentity.Role;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.cbean.result.PagingResultBean;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
|
||||
|
@ -82,12 +83,15 @@ public class RoleService implements Serializable {
|
|||
op.setRefresh(true);
|
||||
});
|
||||
|
||||
userBhv.selectCursor(cb -> {
|
||||
cb.query().setRoles_Equal(role.getId());
|
||||
}, entity -> {
|
||||
entity.setRoles(StreamUtil.of(entity.getRoles()).filter(s -> !s.equals(role.getId())).toArray(n -> new String[n]));
|
||||
userBhv.insertOrUpdate(entity);
|
||||
});
|
||||
userBhv.selectCursor(
|
||||
cb -> {
|
||||
cb.query().setRoles_Equal(role.getId());
|
||||
},
|
||||
entity -> {
|
||||
entity.setRoles(stream(entity.getRoles()).get(
|
||||
stream -> stream.filter(s -> !s.equals(role.getId())).toArray(n -> new String[n])));
|
||||
userBhv.insertOrUpdate(entity);
|
||||
});
|
||||
}
|
||||
|
||||
protected void setupListCondition(final RoleCB cb, final RolePager rolePager) {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.backup;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -26,7 +28,6 @@ import org.codelibs.elasticsearch.runner.net.CurlResponse;
|
|||
import org.codelibs.fess.app.web.base.FessAdminAction;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.ResourceUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.Execute;
|
||||
import org.lastaflute.web.response.ActionResponse;
|
||||
import org.lastaflute.web.response.HtmlResponse;
|
||||
|
@ -50,7 +51,7 @@ public class AdminBackupAction extends FessAdminAction {
|
|||
|
||||
@Execute
|
||||
public ActionResponse download(final String id) {
|
||||
if (StreamUtil.of(fessConfig.getIndexBackupTargetsAsArray()).anyMatch(s -> s.equals(id))) {
|
||||
if (stream(fessConfig.getIndexBackupTargetsAsArray()).get(stream -> stream.anyMatch(s -> s.equals(id)))) {
|
||||
return asStream(id + ".bulk").contentTypeOctetStream().stream(
|
||||
out -> {
|
||||
try (CurlResponse response =
|
||||
|
@ -66,12 +67,13 @@ public class AdminBackupAction extends FessAdminAction {
|
|||
}
|
||||
|
||||
private List<Map<String, String>> getBackupItems() {
|
||||
return StreamUtil.of(fessConfig.getIndexBackupTargetsAsArray()).filter(name -> StringUtil.isNotBlank(name)).map(name -> {
|
||||
final Map<String, String> map = new HashMap<>();
|
||||
map.put("id", name);
|
||||
map.put("name", name);
|
||||
return map;
|
||||
}).collect(Collectors.toList());
|
||||
return stream(fessConfig.getIndexBackupTargetsAsArray()).get(
|
||||
stream -> stream.filter(name -> StringUtil.isNotBlank(name)).map(name -> {
|
||||
final Map<String, String> map = new HashMap<>();
|
||||
map.put("id", name);
|
||||
map.put("name", name);
|
||||
return map;
|
||||
}).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
private HtmlResponse asIndexHtml() {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.dataconfig;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -37,7 +39,6 @@ import org.codelibs.fess.es.config.exentity.DataConfig;
|
|||
import org.codelibs.fess.helper.PermissionHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.web.Execute;
|
||||
|
@ -148,8 +149,9 @@ public class AdminDataconfigAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s)).filter(s -> StringUtil.isNotBlank(s))
|
||||
.distinct().collect(Collectors.joining("\n")));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), () -> asListHtml());
|
||||
});
|
||||
|
@ -185,9 +187,10 @@ public class AdminDataconfigAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n")));
|
||||
form.crudMode = crudMode;
|
||||
})
|
||||
.orElse(() -> {
|
||||
|
@ -300,8 +303,9 @@ public class AdminDataconfigAction extends FessAdminAction {
|
|||
op -> op.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE), Stream.of("permissions")).toArray(
|
||||
n -> new String[n])));
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
entity.setPermissions(StreamUtil.of(form.permissions.split("\n")).map(s -> permissionHelper.encode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().toArray(n -> new String[n]));
|
||||
entity.setPermissions(stream(form.permissions.split("\n")).get(
|
||||
stream -> stream.map(s -> permissionHelper.encode(s)).filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.toArray(n -> new String[n])));
|
||||
return entity;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.dict.seunjeon;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
|
@ -32,7 +34,6 @@ import org.codelibs.fess.app.web.admin.dict.AdminDictAction;
|
|||
import org.codelibs.fess.app.web.base.FessAdminAction;
|
||||
import org.codelibs.fess.dict.seunjeon.SeunjeonItem;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.web.Execute;
|
||||
|
@ -363,7 +364,8 @@ public class AdminDictSeunjeonAction extends FessAdminAction {
|
|||
if (StringUtil.isBlank(value)) {
|
||||
return StringUtil.EMPTY_STRINGS;
|
||||
}
|
||||
return StreamUtil.of(value.split(",")).filter(s -> StringUtil.isNotBlank(s)).map(s -> s.trim()).toArray(n -> new String[n]);
|
||||
return stream(value.split(",")).get(
|
||||
stream -> stream.filter(s -> StringUtil.isNotBlank(s)).map(s -> s.trim()).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
// ===================================================================================
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.fileconfig;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
@ -32,7 +34,6 @@ import org.codelibs.fess.es.config.exentity.FileConfig;
|
|||
import org.codelibs.fess.helper.PermissionHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.web.Execute;
|
||||
|
@ -143,8 +144,9 @@ public class AdminFileconfigAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s)).filter(s -> StringUtil.isNotBlank(s))
|
||||
.distinct().collect(Collectors.joining("\n")));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), () -> asListHtml());
|
||||
});
|
||||
|
@ -180,9 +182,10 @@ public class AdminFileconfigAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n")));
|
||||
form.crudMode = crudMode;
|
||||
})
|
||||
.orElse(() -> {
|
||||
|
@ -297,8 +300,9 @@ public class AdminFileconfigAction extends FessAdminAction {
|
|||
op -> op.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE), Stream.of("permissions")).toArray(
|
||||
n -> new String[n])));
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
entity.setPermissions(StreamUtil.of(form.permissions.split("\n")).map(s -> permissionHelper.encode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().toArray(n -> new String[n]));
|
||||
entity.setPermissions(stream(form.permissions.split("\n")).get(
|
||||
stream -> stream.map(s -> permissionHelper.encode(s)).filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.toArray(n -> new String[n])));
|
||||
return entity;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.general;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -30,7 +32,6 @@ import org.codelibs.fess.app.web.base.FessAdminAction;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.mylasta.mail.TestmailPostcard;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.core.mail.Postbox;
|
||||
import org.lastaflute.web.Execute;
|
||||
import org.lastaflute.web.response.HtmlResponse;
|
||||
|
@ -91,9 +92,9 @@ public class AdminGeneralAction extends FessAdminAction {
|
|||
TestmailPostcard.droppedInto(postbox, postcard -> {
|
||||
postcard.setFrom(fessConfig.getMailFromAddress(), fessConfig.getMailFromName());
|
||||
postcard.addReplyTo(fessConfig.getMailReturnPath());
|
||||
StreamUtil.of(toAddresses).forEach(address -> {
|
||||
stream(toAddresses).of(stream -> stream.forEach(address -> {
|
||||
postcard.addTo(address);
|
||||
});
|
||||
}));
|
||||
BeanUtil.copyMapToBean(dataMap, postcard);
|
||||
});
|
||||
saveInfo(messages -> messages.addSuccessSendTestmail(GLOBAL));
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.labeltype;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
@ -31,7 +33,6 @@ import org.codelibs.fess.es.config.exentity.LabelType;
|
|||
import org.codelibs.fess.helper.PermissionHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.web.Execute;
|
||||
|
@ -141,8 +142,9 @@ public class AdminLabeltypeAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s)).filter(s -> StringUtil.isNotBlank(s))
|
||||
.distinct().collect(Collectors.joining("\n")));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), () -> asListHtml());
|
||||
});
|
||||
|
@ -178,9 +180,10 @@ public class AdminLabeltypeAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n")));
|
||||
form.crudMode = crudMode;
|
||||
})
|
||||
.orElse(() -> {
|
||||
|
@ -296,8 +299,9 @@ public class AdminLabeltypeAction extends FessAdminAction {
|
|||
op -> op.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE), Stream.of("permissions")).toArray(
|
||||
n -> new String[n])));
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
entity.setPermissions(StreamUtil.of(form.permissions.split("\n")).map(s -> permissionHelper.encode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().toArray(n -> new String[n]));
|
||||
entity.setPermissions(stream(form.permissions.split("\n")).get(
|
||||
stream -> stream.map(s -> permissionHelper.encode(s)).filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.toArray(n -> new String[n])));
|
||||
return entity;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.searchlist;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
@ -28,7 +30,6 @@ import org.codelibs.fess.entity.GeoInfo;
|
|||
import org.codelibs.fess.entity.SearchRequestParams;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.util.LaRequestUtil;
|
||||
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
|
||||
|
||||
|
@ -67,7 +68,7 @@ public class ListForm implements SearchRequestParams, Serializable {
|
|||
|
||||
@Override
|
||||
public String[] getExtraQueries() {
|
||||
return StreamUtil.of(ex_q).filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]);
|
||||
return stream(ex_q).get(stream -> stream.filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -97,7 +98,7 @@ public class ListForm implements SearchRequestParams, Serializable {
|
|||
|
||||
@Override
|
||||
public String[] getLanguages() {
|
||||
return StreamUtil.of(lang).filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]);
|
||||
return stream(lang).get(stream -> stream.filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.admin.webconfig;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
|
@ -33,7 +35,6 @@ import org.codelibs.fess.es.config.exentity.WebConfig;
|
|||
import org.codelibs.fess.helper.PermissionHelper;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.lastaflute.web.Execute;
|
||||
|
@ -145,8 +146,9 @@ public class AdminWebconfigAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s)).filter(s -> StringUtil.isNotBlank(s))
|
||||
.distinct().collect(Collectors.joining("\n")));
|
||||
}).orElse(() -> {
|
||||
throwValidationError(messages -> messages.addErrorsCrudCouldNotFindCrudTable(GLOBAL, id), () -> asListHtml());
|
||||
});
|
||||
|
@ -182,9 +184,10 @@ public class AdminWebconfigAction extends FessAdminAction {
|
|||
});
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
form.permissions =
|
||||
StreamUtil.of(entity.getPermissions()).map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n"));
|
||||
stream(entity.getPermissions()).get(
|
||||
stream -> stream.map(s -> permissionHelper.decode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.collect(Collectors.joining("\n")));
|
||||
form.crudMode = crudMode;
|
||||
})
|
||||
.orElse(() -> {
|
||||
|
@ -297,8 +300,9 @@ public class AdminWebconfigAction extends FessAdminAction {
|
|||
op -> op.exclude(Stream.concat(Stream.of(Constants.COMMON_CONVERSION_RULE), Stream.of("permissions")).toArray(
|
||||
n -> new String[n])));
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
entity.setPermissions(StreamUtil.of(form.permissions.split("\n")).map(s -> permissionHelper.encode(s))
|
||||
.filter(s -> StringUtil.isNotBlank(s)).distinct().toArray(n -> new String[n]));
|
||||
entity.setPermissions(stream(form.permissions.split("\n")).get(
|
||||
stream -> stream.map(s -> permissionHelper.encode(s)).filter(s -> StringUtil.isNotBlank(s)).distinct()
|
||||
.toArray(n -> new String[n])));
|
||||
return entity;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.base;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.HashMap;
|
||||
import java.util.Locale;
|
||||
|
@ -28,7 +30,6 @@ import org.codelibs.fess.entity.GeoInfo;
|
|||
import org.codelibs.fess.entity.SearchRequestParams;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.util.LaRequestUtil;
|
||||
import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure;
|
||||
|
||||
|
@ -92,7 +93,7 @@ public class SearchForm implements SearchRequestParams, Serializable {
|
|||
|
||||
@Override
|
||||
public String[] getExtraQueries() {
|
||||
return StreamUtil.of(ex_q).filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]);
|
||||
return stream(ex_q).get(stream -> stream.filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -102,7 +103,7 @@ public class SearchForm implements SearchRequestParams, Serializable {
|
|||
|
||||
@Override
|
||||
public String[] getLanguages() {
|
||||
return StreamUtil.of(lang).filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]);
|
||||
return stream(lang).get(stream -> stream.filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.app.web.search;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
|
@ -33,7 +35,6 @@ import org.codelibs.fess.entity.SearchRenderData;
|
|||
import org.codelibs.fess.exception.InvalidQueryException;
|
||||
import org.codelibs.fess.exception.ResultOffsetExceededException;
|
||||
import org.codelibs.fess.util.RenderDataUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.taglib.function.LaFunctions;
|
||||
import org.lastaflute.web.Execute;
|
||||
import org.lastaflute.web.response.HtmlResponse;
|
||||
|
@ -199,8 +200,9 @@ public class SearchAction extends FessSearchAction {
|
|||
protected void createPagingQuery(final SearchForm form) {
|
||||
final List<String> pagingQueryList = new ArrayList<>();
|
||||
if (form.ex_q != null) {
|
||||
StreamUtil.of(form.ex_q).filter(q -> StringUtil.isNotBlank(q)).distinct()
|
||||
.forEach(q -> pagingQueryList.add("ex_q=" + LaFunctions.u(q)));
|
||||
stream(form.ex_q).of(
|
||||
stream -> stream.filter(q -> StringUtil.isNotBlank(q)).distinct()
|
||||
.forEach(q -> pagingQueryList.add("ex_q=" + LaFunctions.u(q))));
|
||||
}
|
||||
if (StringUtil.isNotBlank(form.sort)) {
|
||||
pagingQueryList.add("sort=" + LaFunctions.u(form.sort));
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.crawler;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
@ -44,7 +46,6 @@ import org.codelibs.fess.helper.SambaHelper;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.DocumentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -74,7 +75,7 @@ public class FessCrawlerThread extends CrawlerThread {
|
|||
final Map<String, Object> dataMap = new HashMap<>();
|
||||
dataMap.put(fessConfig.getIndexFieldUrl(), url);
|
||||
final List<String> roleTypeList = new ArrayList<>();
|
||||
StreamUtil.of(crawlingConfig.getPermissions()).forEach(p -> roleTypeList.add(p));
|
||||
stream(crawlingConfig.getPermissions()).of(stream -> stream.forEach(p -> roleTypeList.add(p)));
|
||||
if (url.startsWith("smb://")) {
|
||||
if (url.endsWith("/")) {
|
||||
// directory
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.crawler.transformer;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.ArrayList;
|
||||
|
@ -59,7 +61,6 @@ import org.codelibs.fess.helper.SambaHelper;
|
|||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -295,7 +296,7 @@ public abstract class AbstractFessFileTransformer extends AbstractTransformer im
|
|||
putResultDataBody(dataMap, fessConfig.getIndexFieldLabel(), labelTypeSet);
|
||||
// role: roleType
|
||||
final List<String> roleTypeList = getRoleTypes(responseData);
|
||||
StreamUtil.of(crawlingConfig.getPermissions()).forEach(p -> roleTypeList.add(p));
|
||||
stream(crawlingConfig.getPermissions()).of(stream -> stream.forEach(p -> roleTypeList.add(p)));
|
||||
putResultDataBody(dataMap, fessConfig.getIndexFieldRole(), roleTypeList);
|
||||
// TODO date
|
||||
// lang
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.crawler.transformer;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
@ -59,7 +61,6 @@ import org.codelibs.fess.helper.PathMappingHelper;
|
|||
import org.codelibs.fess.helper.SystemHelper;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.cyberneko.html.parsers.DOMParser;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -287,7 +288,7 @@ public class FessXpathTransformer extends XpathTransformer implements FessTransf
|
|||
putResultDataBody(dataMap, fessConfig.getIndexFieldLabel(), labelTypeSet);
|
||||
// role: roleType
|
||||
final List<String> roleTypeList = new ArrayList<>();
|
||||
StreamUtil.of(crawlingConfig.getPermissions()).forEach(p -> roleTypeList.add(p));
|
||||
stream(crawlingConfig.getPermissions()).of(stream -> stream.forEach(p -> roleTypeList.add(p)));
|
||||
putResultDataBody(dataMap, fessConfig.getIndexFieldRole(), roleTypeList);
|
||||
// id
|
||||
putResultDataBody(dataMap, fessConfig.getIndexFieldId(), crawlingInfoHelper.generateId(dataMap));
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.ds.impl;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
|
@ -31,7 +33,6 @@ import org.codelibs.fess.helper.SystemHelper;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.GroovyUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -86,7 +87,7 @@ public abstract class AbstractDataStoreImpl implements DataStore {
|
|||
defaultDataMap.put(fessConfig.getIndexFieldLabel(), labelTypeList);
|
||||
// role: roleType
|
||||
final List<String> roleTypeList = new ArrayList<>();
|
||||
StreamUtil.of(config.getPermissions()).forEach(p -> roleTypeList.add(p));
|
||||
stream(config.getPermissions()).of(stream -> stream.forEach(p -> roleTypeList.add(p)));
|
||||
defaultDataMap.put(fessConfig.getIndexFieldRole(), roleTypeList);
|
||||
// mimetype
|
||||
defaultDataMap.put(fessConfig.getIndexFieldMimetype(), mimeType);
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.ds.impl;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
|
@ -39,7 +41,6 @@ import org.codelibs.fess.es.config.exentity.DataConfig;
|
|||
import org.codelibs.fess.exception.DataStoreCrawlingException;
|
||||
import org.codelibs.fess.exception.DataStoreException;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -96,8 +97,9 @@ public class CsvDataStoreImpl extends AbstractDataStoreImpl {
|
|||
for (final String path : values) {
|
||||
final File dir = new File(path);
|
||||
if (dir.isDirectory()) {
|
||||
StreamUtil.of(dir.listFiles()).filter(f -> isCsvFile(f.getParentFile(), f.getName()))
|
||||
.sorted((f1, f2) -> (int) (f1.lastModified() - f2.lastModified())).forEach(f -> fileList.add(f));
|
||||
stream(dir.listFiles()).of(
|
||||
stream -> stream.filter(f -> isCsvFile(f.getParentFile(), f.getName()))
|
||||
.sorted((f1, f2) -> (int) (f1.lastModified() - f2.lastModified())).forEach(f -> fileList.add(f)));
|
||||
} else {
|
||||
logger.warn(path + " is not a directory.");
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.ds.impl;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.net.InetAddress;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
|
@ -31,7 +33,6 @@ import org.codelibs.fess.es.config.exentity.DataConfig;
|
|||
import org.codelibs.fess.exception.DataStoreCrawlingException;
|
||||
import org.codelibs.fess.exception.DataStoreException;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
||||
import org.elasticsearch.action.bulk.BulkResponse;
|
||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||
|
@ -89,7 +90,7 @@ public class EsDataStoreImpl extends AbstractDataStoreImpl {
|
|||
Collectors.toMap(e -> e.getKey().replaceFirst("^settings\\.", StringUtil.EMPTY), e -> e.getValue())))
|
||||
.build();
|
||||
logger.info("Connecting to " + hostsStr + " with [" + settings.toDelimitedString(',') + "]");
|
||||
final InetSocketTransportAddress[] addresses = StreamUtil.of(hostsStr.split(",")).map(h -> {
|
||||
final InetSocketTransportAddress[] addresses = stream(hostsStr.split(",")).get(stream -> stream.map(h -> {
|
||||
final String[] values = h.trim().split(":");
|
||||
try {
|
||||
if (values.length == 1) {
|
||||
|
@ -101,7 +102,7 @@ public class EsDataStoreImpl extends AbstractDataStoreImpl {
|
|||
logger.warn("Failed to parse address: " + h, e);
|
||||
}
|
||||
return null;
|
||||
}).filter(v -> v != null).toArray(n -> new InetSocketTransportAddress[n]);
|
||||
}).filter(v -> v != null).toArray(n -> new InetSocketTransportAddress[n]));
|
||||
try (Client client = TransportClient.builder().settings(settings).build().addTransportAddresses(addresses)) {
|
||||
processData(dataConfig, callback, paramMap, scriptMap, defaultDataMap, readInterval, client);
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.ds.impl;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
@ -42,7 +44,6 @@ import org.codelibs.fess.exception.DataStoreCrawlingException;
|
|||
import org.codelibs.fess.helper.IndexingHelper;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.di.core.SingletonLaContainer;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
@ -149,7 +150,7 @@ public class FileListIndexUpdateCallbackImpl implements IndexUpdateCallback, Aut
|
|||
} else {
|
||||
ignoreFields = new String[] { Constants.INDEXING_TARGET, Constants.SESSION_ID };
|
||||
}
|
||||
StreamUtil.of(ignoreFields).map(s -> s.trim()).forEach(s -> dataMap.remove(s));
|
||||
stream(ignoreFields).of(stream -> stream.map(s -> s.trim()).forEach(s -> dataMap.remove(s)));
|
||||
|
||||
indexUpdateCallback.store(paramMap, dataMap);
|
||||
} else {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.entity;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
@ -26,7 +28,6 @@ import org.codelibs.core.lang.StringUtil;
|
|||
import org.codelibs.fess.exception.InvalidQueryException;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
|
@ -42,10 +43,8 @@ public class GeoInfo {
|
|||
final String[] geoFields = fessConfig.getQueryGeoFieldsAsArray();
|
||||
final Map<String, List<QueryBuilder>> geoMap = new HashMap<>();
|
||||
|
||||
StreamUtil
|
||||
.of(request.getParameterMap())
|
||||
.filter(e -> e.getKey().startsWith("geo.") && e.getKey().endsWith(".point"))
|
||||
.forEach(
|
||||
stream(request.getParameterMap()).of(
|
||||
stream -> stream.filter(e -> e.getKey().startsWith("geo.") && e.getKey().endsWith(".point")).forEach(
|
||||
e -> {
|
||||
final String key = e.getKey();
|
||||
for (final String geoField : geoFields) {
|
||||
|
@ -53,8 +52,8 @@ public class GeoInfo {
|
|||
final String distanceKey = key.replaceFirst(".point$", ".distance");
|
||||
final String distance = request.getParameter(distanceKey);
|
||||
if (StringUtil.isNotBlank(distance)) {
|
||||
StreamUtil.of(e.getValue()).forEach(
|
||||
pt -> {
|
||||
stream(e.getValue()).of(
|
||||
s -> s.forEach(pt -> {
|
||||
List<QueryBuilder> list = geoMap.get(geoField);
|
||||
if (list == null) {
|
||||
list = new ArrayList<>();
|
||||
|
@ -77,12 +76,12 @@ public class GeoInfo {
|
|||
.addErrorsInvalidQueryUnknown(UserMessages.GLOBAL_PROPERTY_KEY),
|
||||
"Invalid geo point: " + pt);
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}));
|
||||
|
||||
final QueryBuilder[] queryBuilders = geoMap.values().stream().map(list -> {
|
||||
if (list.size() == 1) {
|
||||
|
@ -99,7 +98,7 @@ public class GeoInfo {
|
|||
builder = queryBuilders[0];
|
||||
} else if (queryBuilders.length > 1) {
|
||||
final BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
|
||||
StreamUtil.of(queryBuilders).forEach(q -> boolQuery.must(q));
|
||||
stream(queryBuilders).of(stream -> stream.forEach(q -> boolQuery.must(q)));
|
||||
builder = boolQuery;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.entity;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -25,7 +27,6 @@ import java.util.Set;
|
|||
import java.util.function.Consumer;
|
||||
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
import org.elasticsearch.index.query.MatchAllQueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilder;
|
||||
|
@ -87,7 +88,7 @@ public class QueryContext {
|
|||
}
|
||||
|
||||
public void addSorts(final SortBuilder... sortBuilders) {
|
||||
StreamUtil.of(sortBuilders).forEach(sortBuilder -> sortBuilderList.add(sortBuilder));
|
||||
stream(sortBuilders).of(stream -> stream.forEach(sortBuilder -> sortBuilderList.add(sortBuilder)));
|
||||
}
|
||||
|
||||
public boolean hasSorts() {
|
||||
|
|
|
@ -15,13 +15,14 @@
|
|||
*/
|
||||
package org.codelibs.fess.entity;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
|
||||
public interface SearchRequestParams {
|
||||
|
||||
|
@ -50,7 +51,7 @@ public interface SearchRequestParams {
|
|||
Locale getLocale();
|
||||
|
||||
public default String[] simplifyArray(final String[] values) {
|
||||
return StreamUtil.of(values).filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]);
|
||||
return stream(values).get(stream -> stream.filter(q -> StringUtil.isNotBlank(q)).distinct().toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
public default String[] getParamValueArray(final HttpServletRequest request, final String param) {
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
package org.codelibs.fess.es.client;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
import static org.codelibs.elasticsearch.runner.ElasticsearchClusterRunner.newConfigs;
|
||||
|
||||
import java.io.File;
|
||||
|
@ -56,7 +57,6 @@ import org.codelibs.fess.exception.SearchQueryException;
|
|||
import org.codelibs.fess.helper.QueryHelper;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.exception.IllegalBehaviorStateException;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.elasticsearch.ElasticsearchException;
|
||||
|
@ -371,8 +371,8 @@ public class FessEsClient implements Client {
|
|||
try {
|
||||
final File aliasConfigDir = ResourceUtil.getResourceAsFile(aliasConfigDirPath);
|
||||
if (aliasConfigDir.isDirectory()) {
|
||||
StreamUtil.of(aliasConfigDir.listFiles((dir, name) -> name.endsWith(".json"))).forEach(
|
||||
f -> {
|
||||
stream(aliasConfigDir.listFiles((dir, name) -> name.endsWith(".json"))).of(
|
||||
stream -> stream.forEach(f -> {
|
||||
final String aliasName = f.getName().replaceFirst(".json$", "");
|
||||
final String source = FileUtil.readUTF8(f);
|
||||
final IndicesAliasesResponse response =
|
||||
|
@ -383,7 +383,7 @@ public class FessEsClient implements Client {
|
|||
} else if (logger.isDebugEnabled()) {
|
||||
logger.debug("Failed to create " + aliasName + " alias for " + configIndex);
|
||||
}
|
||||
});
|
||||
}));
|
||||
}
|
||||
} catch (final ResourceNotFoundRuntimeException e) {
|
||||
// ignore
|
||||
|
@ -882,12 +882,12 @@ public class FessEsClient implements Client {
|
|||
queryContext.sortBuilders().forEach(sortBuilder -> searchRequestBuilder.addSort(sortBuilder));
|
||||
|
||||
// highlighting
|
||||
queryHelper.highlightedFields().forEach(
|
||||
hf -> searchRequestBuilder.addHighlightedField(hf, queryHelper.getHighlightFragmentSize()));
|
||||
queryHelper.highlightedFields(stream -> stream.forEach(hf -> searchRequestBuilder.addHighlightedField(hf,
|
||||
queryHelper.getHighlightFragmentSize())));
|
||||
|
||||
// facets
|
||||
if (facetInfo != null) {
|
||||
StreamUtil.of(facetInfo.field).forEach(f -> {
|
||||
stream(facetInfo.field).of(stream -> stream.forEach(f -> {
|
||||
if (queryHelper.isFacetField(f)) {
|
||||
final String encodedField = BaseEncoding.base64().encode(f.getBytes(StandardCharsets.UTF_8));
|
||||
final TermsBuilder termsBuilder = AggregationBuilders.terms(Constants.FACET_FIELD_PREFIX + encodedField).field(f);
|
||||
|
@ -909,9 +909,9 @@ public class FessEsClient implements Client {
|
|||
} else {
|
||||
throw new SearchQueryException("Invalid facet field: " + f);
|
||||
}
|
||||
});
|
||||
StreamUtil.of(facetInfo.query).forEach(
|
||||
fq -> {
|
||||
}));
|
||||
stream(facetInfo.query).of(
|
||||
stream -> stream.forEach(fq -> {
|
||||
final QueryContext facetContext = new QueryContext(fq, false);
|
||||
queryHelper.buildBaseQuery(facetContext, c -> {});
|
||||
final String encodedFacetQuery = BaseEncoding.base64().encode(fq.getBytes(StandardCharsets.UTF_8));
|
||||
|
@ -919,7 +919,7 @@ public class FessEsClient implements Client {
|
|||
AggregationBuilders.filter(Constants.FACET_QUERY_PREFIX + encodedFacetQuery).filter(
|
||||
facetContext.getQueryBuilder());
|
||||
searchRequestBuilder.addAggregation(filterBuilder);
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
searchRequestBuilder.setQuery(queryContext.getQueryBuilder());
|
||||
|
|
|
@ -15,16 +15,18 @@
|
|||
*/
|
||||
package org.codelibs.fess.es.user.exentity;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Base64;
|
||||
import java.util.stream.Stream;
|
||||
import java.util.List;
|
||||
|
||||
import org.codelibs.fess.Constants;
|
||||
import org.codelibs.fess.entity.FessUser;
|
||||
import org.codelibs.fess.es.user.bsentity.BsUser;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
|
||||
/**
|
||||
* @author FreeGen
|
||||
|
@ -53,20 +55,16 @@ public class User extends BsUser implements FessUser {
|
|||
|
||||
@Override
|
||||
public String[] getRoleNames() {
|
||||
return getRoleStream().toArray(n -> new String[n]);
|
||||
}
|
||||
|
||||
protected Stream<String> getRoleStream() {
|
||||
return StreamUtil.of(getRoles()).map(role -> new String(Base64.getDecoder().decode(role), Constants.CHARSET_UTF_8));
|
||||
return stream(getRoles()).get(stream -> stream.map(s -> decode(s)).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroupNames() {
|
||||
return getGroupStream().toArray(n -> new String[n]);
|
||||
return stream(getGroups()).get(stream -> stream.map(s -> decode(s)).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
private Stream<String> getGroupStream() {
|
||||
return StreamUtil.of(getGroups()).map(group -> new String(Base64.getDecoder().decode(group), Constants.CHARSET_UTF_8));
|
||||
private String decode(String value) {
|
||||
return new String(Base64.getDecoder().decode(value), Constants.CHARSET_UTF_8);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -86,10 +84,11 @@ public class User extends BsUser implements FessUser {
|
|||
@Override
|
||||
public String[] getPermissions() {
|
||||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
return Stream.concat(
|
||||
Stream.of(fessConfig.getRoleSearchUserPrefix() + getName()),
|
||||
Stream.concat(getRoleStream().map(s -> fessConfig.getRoleSearchRolePrefix() + s),
|
||||
getGroupStream().map(s -> fessConfig.getRoleSearchGroupPrefix() + s))).toArray(n -> new String[n]);
|
||||
final List<String> list = new ArrayList<>();
|
||||
list.add(fessConfig.getRoleSearchUserPrefix() + getName());
|
||||
stream(getRoles()).of(stream -> stream.forEach(s -> list.add(fessConfig.getRoleSearchRolePrefix() + decode(s))));
|
||||
stream(getGroups()).of(stream -> stream.forEach(s -> list.add(fessConfig.getRoleSearchGroupPrefix() + decode(s))));
|
||||
return list.toArray(new String[list.size()]);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.exec;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
||||
|
@ -45,7 +47,6 @@ import org.codelibs.fess.helper.WebFsIndexHelper;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.mylasta.mail.CrawlerPostcard;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.kohsuke.args4j.CmdLineException;
|
||||
import org.kohsuke.args4j.CmdLineParser;
|
||||
import org.kohsuke.args4j.Option;
|
||||
|
@ -318,9 +319,9 @@ public class Crawler implements Serializable {
|
|||
CrawlerPostcard.droppedInto(postbox, postcard -> {
|
||||
postcard.setFrom(fessConfig.getMailFromAddress(), fessConfig.getMailFromName());
|
||||
postcard.addReplyTo(fessConfig.getMailReturnPath());
|
||||
StreamUtil.of(toAddresses).forEach(address -> {
|
||||
stream(toAddresses).of(stream -> stream.forEach(address -> {
|
||||
postcard.addTo(address);
|
||||
});
|
||||
}));
|
||||
postcard.setCrawlerEndTime(getValueFromMap(dataMap, "crawlerEndTime", StringUtil.EMPTY));
|
||||
postcard.setCrawlerExecTime(getValueFromMap(dataMap, "crawlerExecTime", "0"));
|
||||
postcard.setCrawlerStartTime(getValueFromMap(dataMap, "crawlerStartTime", StringUtil.EMPTY));
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.helper;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
@ -27,7 +29,6 @@ import org.codelibs.core.lang.StringUtil;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.suggest.request.popularwords.PopularWordsRequestBuilder;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -71,10 +72,10 @@ public class PopularWordHelper {
|
|||
.setSize(fessConfig.getSuggestPopularWordSizeAsInteger().intValue())
|
||||
.setWindowSize(fessConfig.getSuggestPopularWordWindowSizeAsInteger().intValue());
|
||||
popularWordsRequestBuilder.setSeed(baseSeed);
|
||||
StreamUtil.of(baseTags).forEach(tag -> popularWordsRequestBuilder.addTag(tag));
|
||||
StreamUtil.of(baseRoles).forEach(role -> popularWordsRequestBuilder.addRole(role));
|
||||
StreamUtil.of(baseFields).forEach(field -> popularWordsRequestBuilder.addField(field));
|
||||
StreamUtil.of(baseExcludes).forEach(exclude -> popularWordsRequestBuilder.addExcludeWord(exclude));
|
||||
stream(baseTags).of(stream -> stream.forEach(tag -> popularWordsRequestBuilder.addTag(tag)));
|
||||
stream(baseRoles).of(stream -> stream.forEach(role -> popularWordsRequestBuilder.addRole(role)));
|
||||
stream(baseFields).of(stream -> stream.forEach(field -> popularWordsRequestBuilder.addField(field)));
|
||||
stream(baseExcludes).of(stream -> stream.forEach(exclude -> popularWordsRequestBuilder.addExcludeWord(exclude)));
|
||||
popularWordsRequestBuilder.execute().then(r -> {
|
||||
r.getItems().stream().forEach(item -> wordList.add(item.getText()));
|
||||
}).error(t -> logger.warn("Failed to generate popular words.", t));
|
||||
|
@ -91,13 +92,13 @@ public class PopularWordHelper {
|
|||
final String[] excludes) {
|
||||
final StringBuilder buf = new StringBuilder(100);
|
||||
buf.append(seed).append(CACHE_KEY_SPLITTER);
|
||||
StreamUtil.of(tags).sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v));
|
||||
stream(tags).of(stream -> stream.sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v)));
|
||||
buf.append(CACHE_KEY_SPLITTER);
|
||||
StreamUtil.of(roles).sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v));
|
||||
stream(roles).of(stream -> stream.sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v)));
|
||||
buf.append(CACHE_KEY_SPLITTER);
|
||||
StreamUtil.of(fields).sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v));
|
||||
stream(fields).of(stream -> stream.sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v)));
|
||||
buf.append(CACHE_KEY_SPLITTER);
|
||||
StreamUtil.of(excludes).sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v));
|
||||
stream(excludes).of(stream -> stream.sorted().reduce((l, r) -> l + r).ifPresent(v -> buf.append(v)));
|
||||
return buf.toString();
|
||||
}
|
||||
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.helper;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -55,7 +57,6 @@ import org.codelibs.fess.entity.QueryContext;
|
|||
import org.codelibs.fess.exception.InvalidQueryException;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.elasticsearch.common.unit.Fuzziness;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
|
@ -448,10 +449,10 @@ public class QueryHelper implements Serializable {
|
|||
"Unknown phrase query: " + query);
|
||||
}
|
||||
final String field = terms[0].field();
|
||||
final String[] texts = StreamUtil.of(terms).map(term -> term.text()).toArray(n -> new String[n]);
|
||||
final String[] texts = stream(terms).get(stream -> stream.map(term -> term.text()).toArray(n -> new String[n]));
|
||||
final String text = String.join(" ", texts);
|
||||
context.addFieldLog(field, text);
|
||||
StreamUtil.of(texts).forEach(t -> context.addHighlightedQuery(t));
|
||||
stream(texts).of(stream -> stream.forEach(t -> context.addHighlightedQuery(t)));
|
||||
return buildDefaultQueryBuilder((f, b) -> QueryBuilders.matchPhraseQuery(f, text).boost(b * boost));
|
||||
}
|
||||
|
||||
|
@ -474,8 +475,8 @@ public class QueryHelper implements Serializable {
|
|||
boolQuery.should(contentQuery);
|
||||
getQueryLanguages().ifPresent(
|
||||
langs -> {
|
||||
StreamUtil.of(langs).forEach(
|
||||
lang -> {
|
||||
stream(langs).of(
|
||||
stream -> stream.forEach(lang -> {
|
||||
final QueryBuilder titleLangQuery =
|
||||
builder.apply(fessConfig.getIndexFieldTitle() + "_" + lang, fessConfig
|
||||
.getQueryBoostTitleLangAsDecimal().floatValue());
|
||||
|
@ -484,7 +485,7 @@ public class QueryHelper implements Serializable {
|
|||
builder.apply(fessConfig.getIndexFieldContent() + "_" + lang, fessConfig
|
||||
.getQueryBoostContentLangAsDecimal().floatValue());
|
||||
boolQuery.should(contentLangQuery);
|
||||
});
|
||||
}));
|
||||
});
|
||||
return boolQuery;
|
||||
}
|
||||
|
@ -580,8 +581,9 @@ public class QueryHelper implements Serializable {
|
|||
this.highlightedFields = highlightedFields;
|
||||
}
|
||||
|
||||
public Stream<String> highlightedFields() {
|
||||
return StreamUtil.of(highlightedFields);
|
||||
public void highlightedFields(Consumer<Stream<String>> stream) {
|
||||
stream(highlightedFields).of(stream);
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -711,7 +713,7 @@ public class QueryHelper implements Serializable {
|
|||
public void addDefaultSort(final String fieldName, final String order) {
|
||||
final List<SortBuilder> list = new ArrayList<>();
|
||||
if (defaultSortBuilders != null) {
|
||||
StreamUtil.of(defaultSortBuilders).forEach(builder -> list.add(builder));
|
||||
stream(defaultSortBuilders).of(stream -> stream.forEach(builder -> list.add(builder)));
|
||||
}
|
||||
list.add(SortBuilders.fieldSort(fieldName)
|
||||
.order(SortOrder.DESC.toString().equalsIgnoreCase(order) ? SortOrder.DESC : SortOrder.ASC));
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.helper;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
|
@ -33,7 +35,6 @@ import org.codelibs.fess.Constants;
|
|||
import org.codelibs.fess.mylasta.action.FessUserBean;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.servlet.request.RequestManager;
|
||||
import org.lastaflute.web.util.LaRequestUtil;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -75,9 +76,9 @@ public class RoleQueryHelper {
|
|||
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
StreamUtil.of(ComponentUtil.getFessConfig().getSearchDefaultPermissionsAsArray()).forEach(name -> {
|
||||
stream(ComponentUtil.getFessConfig().getSearchDefaultPermissionsAsArray()).of(stream -> stream.forEach(name -> {
|
||||
defaultRoleList.add(name);
|
||||
});
|
||||
}));
|
||||
}
|
||||
|
||||
public Set<String> build() {
|
||||
|
@ -107,7 +108,7 @@ public class RoleQueryHelper {
|
|||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
final RequestManager requestManager = ComponentUtil.getRequestManager();
|
||||
requestManager.findUserBean(FessUserBean.class)
|
||||
.ifPresent(fessUserBean -> StreamUtil.of(fessUserBean.getPermissions()).forEach(roleList::add))
|
||||
.ifPresent(fessUserBean -> stream(fessUserBean.getPermissions()).of(stream -> stream.forEach(roleList::add)))
|
||||
.orElse(() -> roleList.add(fessConfig.getRoleSearchUserPrefix() + Constants.GUEST_USER));
|
||||
|
||||
if (defaultRoleList != null) {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.helper;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
@ -47,7 +49,6 @@ import org.codelibs.fess.mylasta.direction.FessConfig;
|
|||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.DocumentUtil;
|
||||
import org.codelibs.fess.util.QueryResponseList;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.elasticsearch.action.update.UpdateRequest;
|
||||
import org.elasticsearch.script.Script;
|
||||
|
@ -199,21 +200,24 @@ public class SearchLogHelper {
|
|||
|
||||
final List<SearchLog> searchLogList = new ArrayList<>();
|
||||
final Map<String, UserInfo> userInfoMap = new HashMap<>();
|
||||
queue.stream().forEach(searchLog -> {
|
||||
final String userAgent = searchLog.getUserAgent();
|
||||
final boolean isBot = userAgent != null && StreamUtil.of(botNames).anyMatch(botName -> userAgent.indexOf(botName) >= 0);
|
||||
if (!isBot) {
|
||||
searchLog.getUserInfo().ifPresent(userInfo -> {
|
||||
final String code = userInfo.getId();
|
||||
final UserInfo oldUserInfo = userInfoMap.get(code);
|
||||
if (oldUserInfo != null) {
|
||||
userInfo.setCreatedAt(oldUserInfo.getCreatedAt());
|
||||
queue.stream().forEach(
|
||||
searchLog -> {
|
||||
final String userAgent = searchLog.getUserAgent();
|
||||
final boolean isBot =
|
||||
userAgent != null
|
||||
&& stream(botNames).get(stream -> stream.anyMatch(botName -> userAgent.indexOf(botName) >= 0));
|
||||
if (!isBot) {
|
||||
searchLog.getUserInfo().ifPresent(userInfo -> {
|
||||
final String code = userInfo.getId();
|
||||
final UserInfo oldUserInfo = userInfoMap.get(code);
|
||||
if (oldUserInfo != null) {
|
||||
userInfo.setCreatedAt(oldUserInfo.getCreatedAt());
|
||||
}
|
||||
userInfoMap.put(code, userInfo);
|
||||
});
|
||||
searchLogList.add(searchLog);
|
||||
}
|
||||
userInfoMap.put(code, userInfo);
|
||||
});
|
||||
searchLogList.add(searchLog);
|
||||
}
|
||||
});
|
||||
|
||||
if (!userInfoMap.isEmpty()) {
|
||||
final List<UserInfo> insertList = new ArrayList<>(userInfoMap.values());
|
||||
|
|
|
@ -15,6 +15,9 @@
|
|||
*/
|
||||
package org.codelibs.fess.helper;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.split;
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneId;
|
||||
import java.util.ArrayList;
|
||||
|
@ -25,7 +28,6 @@ import java.util.List;
|
|||
import java.util.Set;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import javax.annotation.Resource;
|
||||
|
@ -46,7 +48,6 @@ import org.codelibs.fess.suggest.index.contents.document.ESSourceReader;
|
|||
import org.codelibs.fess.suggest.settings.SuggestSettings;
|
||||
import org.codelibs.fess.suggest.util.SuggestUtil;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.elasticsearch.index.query.BoolQueryBuilder;
|
||||
import org.elasticsearch.index.query.QueryBuilders;
|
||||
|
||||
|
@ -80,21 +81,24 @@ public class SuggestHelper {
|
|||
@PostConstruct
|
||||
public void init() {
|
||||
fessConfig = ComponentUtil.getFessConfig();
|
||||
stream(fessConfig.getSuggestFieldContents()).forEach(f -> contentFieldNameSet.add(f));
|
||||
stream(fessConfig.getSuggestFieldTags()).forEach(f -> tagFieldNameSet.add(f));
|
||||
stream(fessConfig.getSuggestFieldRoles()).forEach(f -> roleFieldNameSet.add(f));
|
||||
contentFieldList = Arrays.asList(stream(fessConfig.getSuggestFieldContents()).toArray(n -> new String[n]));
|
||||
stream(fessConfig.getSuggestRoleFilters()).forEach(filter -> {
|
||||
split(fessConfig.getSuggestFieldContents(), ",").of(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).forEach(f -> contentFieldNameSet.add(f)));
|
||||
split(fessConfig.getSuggestFieldTags(), ",").of(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).forEach(f -> tagFieldNameSet.add(f)));
|
||||
split(fessConfig.getSuggestFieldRoles(), ",").of(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).forEach(f -> roleFieldNameSet.add(f)));
|
||||
contentFieldList = Arrays.asList(stream(fessConfig.getSuggestFieldContents()).get(stream -> stream.toArray(n -> new String[n])));
|
||||
split(fessConfig.getSuggestRoleFilters(), ",").of(stream -> stream.filter(StringUtil::isNotBlank).forEach(filter -> {
|
||||
roleFilterList.add(Pattern.compile(filter));
|
||||
});
|
||||
}));
|
||||
|
||||
fessEsClient.admin().cluster().prepareHealth().setWaitForYellowStatus().execute().actionGet(fessConfig.getIndexHealthTimeout());
|
||||
|
||||
suggester = Suggester.builder().build(fessEsClient, fessConfig.getIndexDocumentSearchIndex());
|
||||
suggester.settings().array().delete(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS);
|
||||
stream(fessConfig.getSuggestFieldIndexContents()).forEach(field -> {
|
||||
split(fessConfig.getSuggestFieldIndexContents(), ",").of(stream -> stream.filter(StringUtil::isNotBlank).forEach(field -> {
|
||||
suggester.settings().array().add(SuggestSettings.DefaultKeys.SUPPORTED_FIELDS, field);
|
||||
});
|
||||
}));
|
||||
suggester.createIndexIfNothing();
|
||||
}
|
||||
|
||||
|
@ -131,7 +135,7 @@ public class SuggestHelper {
|
|||
}
|
||||
|
||||
if (sb.length() > 0) {
|
||||
StreamUtil.of(searchLog.getRoles()).forEach(role -> roles.add(role));
|
||||
stream(searchLog.getRoles()).of(stream -> stream.forEach(role -> roles.add(role)));
|
||||
if (roles.stream().allMatch(v -> roleFilterList.stream().anyMatch(pattern -> pattern.matcher(v).matches()))) {
|
||||
suggester.indexer().indexFromSearchWord(sb.toString(), fields.toArray(new String[fields.size()]),
|
||||
tags.toArray(new String[tags.size()]), roles.toArray(new String[roles.size()]), 1);
|
||||
|
@ -262,8 +266,4 @@ public class SuggestHelper {
|
|||
suggester.indexer().deleteBadWord(badWord);
|
||||
}
|
||||
|
||||
private Stream<String> stream(final String value) {
|
||||
return StreamUtil.of(value.split(",")).filter(v -> StringUtil.isNotBlank(v));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.job;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FilenameFilter;
|
||||
|
@ -38,7 +40,6 @@ import org.codelibs.fess.mylasta.direction.FessConfig;
|
|||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.InputStreamThread;
|
||||
import org.codelibs.fess.util.JobProcess;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -323,8 +324,8 @@ public class CrawlJob {
|
|||
} else {
|
||||
cmdList.add("-Dfess.log.level=" + logLevel);
|
||||
}
|
||||
StreamUtil.of(fessConfig.getJvmCrawlerOptionsAsArray()).filter(value -> StringUtil.isNotBlank(value))
|
||||
.forEach(value -> cmdList.add(value));
|
||||
stream(fessConfig.getJvmCrawlerOptionsAsArray()).of(
|
||||
stream -> stream.filter(value -> StringUtil.isNotBlank(value)).forEach(value -> cmdList.add(value)));
|
||||
|
||||
File ownTmpDir = null;
|
||||
final String tmpDir = System.getProperty("java.io.tmpdir");
|
||||
|
@ -338,7 +339,7 @@ public class CrawlJob {
|
|||
}
|
||||
|
||||
if (StringUtil.isNotBlank(jvmOptions)) {
|
||||
StreamUtil.of(jvmOptions.split(" ")).filter(s -> StringUtil.isNotBlank(s)).forEach(s -> cmdList.add(s));
|
||||
stream(jvmOptions.split(" ")).of(stream -> stream.filter(s -> StringUtil.isNotBlank(s)).forEach(s -> cmdList.add(s)));
|
||||
}
|
||||
|
||||
cmdList.add(Crawler.class.getCanonicalName());
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.job;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.FilenameFilter;
|
||||
|
@ -36,7 +38,6 @@ import org.codelibs.fess.mylasta.direction.FessConfig;
|
|||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.InputStreamThread;
|
||||
import org.codelibs.fess.util.JobProcess;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
@ -195,8 +196,8 @@ public class SuggestJob {
|
|||
} else {
|
||||
cmdList.add("-Dfess.log.level=" + logLevel);
|
||||
}
|
||||
StreamUtil.of(fessConfig.getJvmSuggestOptionsAsArray()).filter(value -> StringUtil.isNotBlank(value))
|
||||
.forEach(value -> cmdList.add(value));
|
||||
stream(fessConfig.getJvmSuggestOptionsAsArray()).of(
|
||||
stream -> stream.filter(value -> StringUtil.isNotBlank(value)).forEach(value -> cmdList.add(value)));
|
||||
|
||||
File ownTmpDir = null;
|
||||
final String tmpDir = System.getProperty("java.io.tmpdir");
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.ldap;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Base64;
|
||||
import java.util.Collections;
|
||||
|
@ -49,7 +51,6 @@ import org.codelibs.fess.helper.SystemHelper;
|
|||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.OptionalUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalEntity;
|
||||
import org.dbflute.util.DfTypeUtil;
|
||||
import org.slf4j.Logger;
|
||||
|
@ -331,13 +332,13 @@ public class LdapManager {
|
|||
oldRoleList.add(name);
|
||||
}
|
||||
});
|
||||
final List<String> newGroupList = StreamUtil.of(user.getGroupNames()).collect(Collectors.toList());
|
||||
StreamUtil.of(user.getGroupNames()).forEach(name -> {
|
||||
final List<String> newGroupList = stream(user.getGroupNames()).get(stream -> stream.collect(Collectors.toList()));
|
||||
stream(user.getGroupNames()).of(stream -> stream.forEach(name -> {
|
||||
if (oldGroupList.contains(name)) {
|
||||
oldGroupList.remove(name);
|
||||
newGroupList.remove(name);
|
||||
}
|
||||
});
|
||||
}));
|
||||
oldGroupList.stream().forEach(
|
||||
name -> {
|
||||
search(fessConfig.getLdapAdminGroupBaseDn(), fessConfig.getLdapAdminGroupFilter(name), null, adminEnv,
|
||||
|
@ -364,13 +365,13 @@ public class LdapManager {
|
|||
});
|
||||
});
|
||||
|
||||
final List<String> newRoleList = StreamUtil.of(user.getRoleNames()).collect(Collectors.toList());
|
||||
StreamUtil.of(user.getRoleNames()).forEach(name -> {
|
||||
final List<String> newRoleList = stream(user.getRoleNames()).get(stream -> stream.collect(Collectors.toList()));
|
||||
stream(user.getRoleNames()).of(stream -> stream.forEach(name -> {
|
||||
if (oldRoleList.contains(name)) {
|
||||
oldRoleList.remove(name);
|
||||
newRoleList.remove(name);
|
||||
}
|
||||
});
|
||||
}));
|
||||
oldRoleList.stream().forEach(
|
||||
name -> {
|
||||
search(fessConfig.getLdapAdminRoleBaseDn(), fessConfig.getLdapAdminRoleFilter(name), null, adminEnv,
|
||||
|
@ -397,8 +398,8 @@ public class LdapManager {
|
|||
});
|
||||
});
|
||||
} else {
|
||||
StreamUtil.of(user.getGroupNames()).forEach(
|
||||
name -> {
|
||||
stream(user.getGroupNames()).of(
|
||||
stream -> stream.forEach(name -> {
|
||||
search(fessConfig.getLdapAdminGroupBaseDn(), fessConfig.getLdapAdminGroupFilter(name), null, adminEnv,
|
||||
subResult -> {
|
||||
if (!!subResult.isEmpty()) {
|
||||
|
@ -410,10 +411,10 @@ public class LdapManager {
|
|||
modifyAddEntry(modifyList, "member", userDN);
|
||||
modify(fessConfig.getLdapAdminGroupSecurityPrincipal(name), modifyList, adminEnv);
|
||||
});
|
||||
});
|
||||
}));
|
||||
|
||||
StreamUtil.of(user.getRoleNames()).forEach(
|
||||
name -> {
|
||||
stream(user.getRoleNames()).of(
|
||||
stream -> stream.forEach(name -> {
|
||||
search(fessConfig.getLdapAdminRoleBaseDn(), fessConfig.getLdapAdminRoleFilter(name), null, adminEnv,
|
||||
subResult -> {
|
||||
if (!!subResult.isEmpty()) {
|
||||
|
@ -425,7 +426,7 @@ public class LdapManager {
|
|||
modifyAddEntry(modifyList, "member", userDN);
|
||||
modify(fessConfig.getLdapAdminRoleSecurityPrincipal(name), modifyList, adminEnv);
|
||||
});
|
||||
});
|
||||
}));
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -764,7 +765,7 @@ public class LdapManager {
|
|||
final Supplier<Hashtable<String, String>> adminEnv = () -> createAdminEnv();
|
||||
final String userDN = fessConfig.getLdapAdminUserSecurityPrincipal(user.getName());
|
||||
|
||||
StreamUtil.of(user.getGroupNames()).forEach(name -> {
|
||||
stream(user.getGroupNames()).of(stream -> stream.forEach(name -> {
|
||||
search(fessConfig.getLdapAdminGroupBaseDn(), fessConfig.getLdapAdminGroupFilter(name), null, adminEnv, subResult -> {
|
||||
if (!!subResult.isEmpty()) {
|
||||
final Group group = new Group();
|
||||
|
@ -775,8 +776,8 @@ public class LdapManager {
|
|||
modifyDeleteEntry(modifyList, "member", userDN);
|
||||
modify(fessConfig.getLdapAdminGroupSecurityPrincipal(name), modifyList, adminEnv);
|
||||
});
|
||||
});
|
||||
StreamUtil.of(user.getRoleNames()).forEach(name -> {
|
||||
}));
|
||||
stream(user.getRoleNames()).of(stream -> stream.forEach(name -> {
|
||||
search(fessConfig.getLdapAdminRoleBaseDn(), fessConfig.getLdapAdminRoleFilter(name), null, adminEnv, subResult -> {
|
||||
if (!!subResult.isEmpty()) {
|
||||
final Role role = new Role();
|
||||
|
@ -787,7 +788,7 @@ public class LdapManager {
|
|||
modifyDeleteEntry(modifyList, "member", userDN);
|
||||
modify(fessConfig.getLdapAdminRoleSecurityPrincipal(name), modifyList, adminEnv);
|
||||
});
|
||||
});
|
||||
}));
|
||||
|
||||
search(fessConfig.getLdapAdminUserBaseDn(), fessConfig.getLdapAdminUserFilter(user.getName()), null, adminEnv, result -> {
|
||||
if (!result.isEmpty()) {
|
||||
|
|
|
@ -15,16 +15,17 @@
|
|||
*/
|
||||
package org.codelibs.fess.ldap;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.Hashtable;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.naming.Context;
|
||||
|
||||
import org.apache.commons.lang3.ArrayUtils;
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.entity.FessUser;
|
||||
import org.codelibs.fess.mylasta.direction.FessConfig;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
|
||||
public class LdapUser implements FessUser {
|
||||
|
||||
|
@ -54,9 +55,8 @@ public class LdapUser implements FessUser {
|
|||
final String accountFilter = ComponentUtil.getFessConfig().getLdapAccountFilter();
|
||||
if (StringUtil.isNotBlank(baseDn) && StringUtil.isNotBlank(accountFilter)) {
|
||||
permissions =
|
||||
Stream.concat(Stream.of(fessConfig.getRoleSearchUserPrefix() + getName()),
|
||||
StreamUtil.of(ComponentUtil.getLdapManager().getRoles(this, baseDn, accountFilter))).toArray(
|
||||
n -> new String[n]);
|
||||
ArrayUtils.addAll(ComponentUtil.getLdapManager().getRoles(this, baseDn, accountFilter),
|
||||
fessConfig.getRoleSearchUserPrefix() + getName());
|
||||
} else {
|
||||
permissions = StringUtil.EMPTY_STRINGS;
|
||||
}
|
||||
|
@ -67,15 +67,17 @@ public class LdapUser implements FessUser {
|
|||
@Override
|
||||
public String[] getRoleNames() {
|
||||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
return StreamUtil.of(getPermissions()).filter(s -> s.startsWith(fessConfig.getRoleSearchRolePrefix())).map(s -> s.substring(1))
|
||||
.toArray(n -> new String[n]);
|
||||
return stream(getPermissions()).get(
|
||||
stream -> stream.filter(s -> s.startsWith(fessConfig.getRoleSearchRolePrefix())).map(s -> s.substring(1))
|
||||
.toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getGroupNames() {
|
||||
final FessConfig fessConfig = ComponentUtil.getFessConfig();
|
||||
return StreamUtil.of(getPermissions()).filter(s -> s.startsWith(fessConfig.getRoleSearchGroupPrefix())).map(s -> s.substring(1))
|
||||
.toArray(n -> new String[n]);
|
||||
return stream(getPermissions()).get(
|
||||
stream -> stream.filter(s -> s.startsWith(fessConfig.getRoleSearchGroupPrefix())).map(s -> s.substring(1))
|
||||
.toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
public Hashtable<String, String> getEnvironment() {
|
||||
|
|
|
@ -15,9 +15,10 @@
|
|||
*/
|
||||
package org.codelibs.fess.mylasta.action;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
import org.codelibs.fess.entity.FessUser;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.lastaflute.web.login.TypicalUserBean;
|
||||
|
||||
/**
|
||||
|
@ -67,19 +68,21 @@ public class FessUserBean extends TypicalUserBean<String> { // #change_it also L
|
|||
}
|
||||
|
||||
public boolean hasRole(final String role) {
|
||||
return StreamUtil.of(user.getRoleNames()).anyMatch(s -> s.equals(role));
|
||||
return stream(user.getRoleNames()).get(stream -> stream.anyMatch(s -> s.equals(role)));
|
||||
}
|
||||
|
||||
public boolean hasRoles(final String[] acceptedRoles) {
|
||||
return StreamUtil.of(user.getRoleNames()).anyMatch(s1 -> StreamUtil.of(acceptedRoles).anyMatch(s2 -> s2.equals(s1)));
|
||||
return stream(user.getRoleNames()).get(
|
||||
stream -> stream.anyMatch(s1 -> stream(acceptedRoles).get(s3 -> s3.anyMatch(s2 -> s2.equals(s1)))));
|
||||
}
|
||||
|
||||
public boolean hasGroup(final String group) {
|
||||
return StreamUtil.of(user.getGroupNames()).anyMatch(s -> s.equals(group));
|
||||
return stream(user.getGroupNames()).get(stream -> stream.anyMatch(s -> s.equals(group)));
|
||||
}
|
||||
|
||||
public boolean hasGroups(final String[] acceptedGroups) {
|
||||
return StreamUtil.of(user.getGroupNames()).anyMatch(s1 -> StreamUtil.of(acceptedGroups).anyMatch(s2 -> s2.equals(s1)));
|
||||
return stream(user.getGroupNames()).get(
|
||||
stream -> stream.anyMatch(s1 -> stream(acceptedGroups).get(s3 -> s3.anyMatch(s2 -> s2.equals(s1)))));
|
||||
}
|
||||
|
||||
public static FessUserBean empty() {
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.mylasta.direction;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashSet;
|
||||
|
@ -37,7 +39,6 @@ import org.codelibs.fess.Constants;
|
|||
import org.codelibs.fess.helper.PermissionHelper;
|
||||
import org.codelibs.fess.mylasta.action.FessUserBean;
|
||||
import org.codelibs.fess.util.ComponentUtil;
|
||||
import org.codelibs.fess.util.StreamUtil;
|
||||
import org.dbflute.optional.OptionalThing;
|
||||
import org.elasticsearch.action.search.SearchRequestBuilder;
|
||||
import org.lastaflute.job.LaJob;
|
||||
|
@ -119,7 +120,7 @@ public interface FessProp {
|
|||
map = Collections.emptyMap();
|
||||
} else {
|
||||
final Set<String> keySet = new HashSet<>();
|
||||
map = StreamUtil.of(value.split("\n")).filter(StringUtil::isNotBlank).map(s -> {
|
||||
map = stream(value.split("\n")).get(stream -> (Map<String, String>) stream.filter(StringUtil::isNotBlank).map(s -> {
|
||||
final String[] pair = s.split("=");
|
||||
if (pair.length == 1) {
|
||||
return new Pair<>(StringUtil.EMPTY, pair[0].trim());
|
||||
|
@ -131,7 +132,7 @@ public interface FessProp {
|
|||
return new Pair<>(pair[0].trim(), sortValue);
|
||||
}
|
||||
return null;
|
||||
}).filter(o -> o != null && keySet.add(o.getFirst())).collect(Collectors.toMap(Pair::getFirst, d -> d.getSecond()));
|
||||
}).filter(o -> o != null && keySet.add(o.getFirst())).collect(Collectors.toMap(Pair::getFirst, d -> d.getSecond())));
|
||||
}
|
||||
propMap.put(DEFAULT_SORT_VALUES, map);
|
||||
}
|
||||
|
@ -144,8 +145,9 @@ public interface FessProp {
|
|||
return e.getValue();
|
||||
}
|
||||
if (userBean.map(
|
||||
user -> StreamUtil.of(user.getRoles()).anyMatch(s -> key.equals(ROLE_VALUE_PREFIX + s))
|
||||
|| StreamUtil.of(user.getGroups()).anyMatch(s -> key.equals(GROUP_VALUE_PREFIX + s))).orElse(false)) {
|
||||
user -> stream(user.getRoles()).get(stream -> stream.anyMatch(s -> key.equals(ROLE_VALUE_PREFIX + s)))
|
||||
|| stream(user.getGroups()).get(stream -> stream.anyMatch(s -> key.equals(GROUP_VALUE_PREFIX + s))))
|
||||
.orElse(false)) {
|
||||
return e.getValue();
|
||||
}
|
||||
return null;
|
||||
|
@ -170,7 +172,7 @@ public interface FessProp {
|
|||
map = Collections.emptyMap();
|
||||
} else {
|
||||
final Set<String> keySet = new HashSet<>();
|
||||
map = StreamUtil.of(value.split("\n")).filter(StringUtil::isNotBlank).map(s -> {
|
||||
map = stream(value.split("\n")).get(stream -> (Map<String, String>) stream.filter(StringUtil::isNotBlank).map(s -> {
|
||||
final String[] pair = s.split("=");
|
||||
if (pair.length == 1) {
|
||||
return new Pair<>(StringUtil.EMPTY, pair[0].trim());
|
||||
|
@ -178,7 +180,7 @@ public interface FessProp {
|
|||
return new Pair<>(pair[0].trim(), pair[1].trim());
|
||||
}
|
||||
return null;
|
||||
}).filter(o -> o != null && keySet.add(o.getFirst())).collect(Collectors.toMap(Pair::getFirst, d -> d.getSecond()));
|
||||
}).filter(o -> o != null && keySet.add(o.getFirst())).collect(Collectors.toMap(Pair::getFirst, d -> d.getSecond())));
|
||||
}
|
||||
propMap.put(DEFAULT_LABEL_VALUES, map);
|
||||
}
|
||||
|
@ -191,8 +193,9 @@ public interface FessProp {
|
|||
return e.getValue();
|
||||
}
|
||||
if (userBean.map(
|
||||
user -> StreamUtil.of(user.getRoles()).anyMatch(s -> key.equals(ROLE_VALUE_PREFIX + s))
|
||||
|| StreamUtil.of(user.getGroups()).anyMatch(s -> key.equals(GROUP_VALUE_PREFIX + s))).orElse(false)) {
|
||||
user -> stream(user.getRoles()).get(stream -> stream.anyMatch(s -> key.equals(ROLE_VALUE_PREFIX + s)))
|
||||
|| stream(user.getGroups()).get(stream -> stream.anyMatch(s -> key.equals(GROUP_VALUE_PREFIX + s))))
|
||||
.orElse(false)) {
|
||||
return e.getValue();
|
||||
}
|
||||
return null;
|
||||
|
@ -495,7 +498,7 @@ public interface FessProp {
|
|||
if (mimetypes.length == 1 && StringUtil.isBlank(mimetypes[0])) {
|
||||
return true;
|
||||
}
|
||||
return StreamUtil.of(mimetypes).anyMatch(s -> s.equalsIgnoreCase(mimetype));
|
||||
return stream(mimetypes).get(stream -> stream.anyMatch(s -> s.equalsIgnoreCase(mimetype)));
|
||||
}
|
||||
|
||||
String getCrawlerDocumentCacheSupportedMimetypes();
|
||||
|
@ -505,7 +508,7 @@ public interface FessProp {
|
|||
if (mimetypes.length == 1 && StringUtil.isBlank(mimetypes[0])) {
|
||||
return true;
|
||||
}
|
||||
return StreamUtil.of(mimetypes).anyMatch(s -> s.equalsIgnoreCase(mimetype));
|
||||
return stream(mimetypes).get(stream -> stream.anyMatch(s -> s.equalsIgnoreCase(mimetype)));
|
||||
}
|
||||
|
||||
String getIndexerClickCountEnabled();
|
||||
|
@ -538,7 +541,7 @@ public interface FessProp {
|
|||
if (StringUtil.isBlank(getJobSystemJobIds())) {
|
||||
return false;
|
||||
}
|
||||
return StreamUtil.of(getJobSystemJobIds().split(",")).anyMatch(s -> s.equals(id));
|
||||
return stream(getJobSystemJobIds().split(",")).get(stream -> stream.anyMatch(s -> s.equals(id)));
|
||||
}
|
||||
|
||||
String getSmbAvailableSidTypes();
|
||||
|
@ -548,15 +551,13 @@ public interface FessProp {
|
|||
return false;
|
||||
}
|
||||
final String value = Integer.toString(sidType);
|
||||
return StreamUtil.of(getSmbAvailableSidTypes().split(",")).anyMatch(s -> {
|
||||
return s.equals(value);
|
||||
});
|
||||
return stream(getSmbAvailableSidTypes().split(",")).get(stream -> stream.anyMatch(s -> s.equals(value)));
|
||||
}
|
||||
|
||||
String getSupportedLanguages();
|
||||
|
||||
public default String[] getSupportedLanguagesAsArray() {
|
||||
return StreamUtil.of(getSupportedLanguages().split(",")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSupportedLanguages().split(",")).get(stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getOnlineHelpSupportedLangs();
|
||||
|
@ -565,25 +566,29 @@ public interface FessProp {
|
|||
if (StringUtil.isBlank(getOnlineHelpSupportedLangs())) {
|
||||
return false;
|
||||
}
|
||||
return StreamUtil.of(getOnlineHelpSupportedLangs().split(",")).filter(StringUtil::isNotBlank).anyMatch(s -> s.equals(lang));
|
||||
return stream(getOnlineHelpSupportedLangs().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).anyMatch(s -> s.equals(lang)));
|
||||
}
|
||||
|
||||
String getSupportedUploadedJsExtentions();
|
||||
|
||||
public default String[] getSupportedUploadedJsExtentionsAsArray() {
|
||||
return StreamUtil.of(getSupportedUploadedJsExtentions().split(",")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSupportedUploadedJsExtentions().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getSupportedUploadedCssExtentions();
|
||||
|
||||
public default String[] getSupportedUploadedCssExtentionsAsArray() {
|
||||
return StreamUtil.of(getSupportedUploadedCssExtentions().split(",")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSupportedUploadedCssExtentions().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getSupportedUploadedMediaExtentions();
|
||||
|
||||
public default String[] getSupportedUploadedMediaExtentionsAsArray() {
|
||||
return StreamUtil.of(getSupportedUploadedMediaExtentions().split(",")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSupportedUploadedMediaExtentions().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getJobTemplateTitleWeb();
|
||||
|
@ -627,11 +632,11 @@ public interface FessProp {
|
|||
Pattern[] patterns = (Pattern[]) propMap.get(CRAWLER_METADATA_CONTENT_EXCLUDES);
|
||||
if (patterns == null) {
|
||||
patterns =
|
||||
StreamUtil.of(getCrawlerMetadataContentExcludes().split(",")).filter(StringUtil::isNotBlank)
|
||||
.map(v -> Pattern.compile(v)).toArray(n -> new Pattern[n]);
|
||||
stream(getCrawlerMetadataContentExcludes().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).map(v -> Pattern.compile(v)).toArray(n -> new Pattern[n]));
|
||||
propMap.put(CRAWLER_METADATA_CONTENT_EXCLUDES, patterns);
|
||||
}
|
||||
return !StreamUtil.of(patterns).anyMatch(p -> p.matcher(name).matches());
|
||||
return !stream(patterns).get(stream -> stream.anyMatch(p -> p.matcher(name).matches()));
|
||||
}
|
||||
|
||||
String getCrawlerMetadataNameMapping();
|
||||
|
@ -640,18 +645,20 @@ public interface FessProp {
|
|||
@SuppressWarnings("unchecked")
|
||||
Map<String, Pair<String, String>> params = (Map<String, Pair<String, String>>) propMap.get(CRAWLER_METADATA_NAME_MAPPING);
|
||||
if (params == null) {
|
||||
params = StreamUtil.of(getCrawlerMetadataNameMapping().split("\n")).filter(StringUtil::isNotBlank).map(v -> {
|
||||
final String[] values = v.split("=");
|
||||
if (values.length == 2) {
|
||||
final String[] subValues = values[1].split(":");
|
||||
if (subValues.length == 2) {
|
||||
return new Tuple3<>(values[0], subValues[0], subValues[1]);
|
||||
} else {
|
||||
return new Tuple3<>(values[0], values[1], Constants.MAPPING_TYPE_ARRAY);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}).collect(Collectors.toMap(Tuple3::getValue1, d -> new Pair<>(d.getValue2(), d.getValue3())));
|
||||
params =
|
||||
stream(getCrawlerMetadataNameMapping().split("\n")).get(
|
||||
stream -> (Map<String, Pair<String, String>>) stream.filter(StringUtil::isNotBlank).map(v -> {
|
||||
final String[] values = v.split("=");
|
||||
if (values.length == 2) {
|
||||
final String[] subValues = values[1].split(":");
|
||||
if (subValues.length == 2) {
|
||||
return new Tuple3<>(values[0], subValues[0], subValues[1]);
|
||||
} else {
|
||||
return new Tuple3<>(values[0], values[1], Constants.MAPPING_TYPE_ARRAY);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}).collect(Collectors.toMap(Tuple3::getValue1, d -> new Pair<>(d.getValue2(), d.getValue3()))));
|
||||
propMap.put(CRAWLER_METADATA_NAME_MAPPING, params);
|
||||
}
|
||||
return params.get(name);
|
||||
|
@ -660,19 +667,22 @@ public interface FessProp {
|
|||
String getSuggestPopularWordFields();
|
||||
|
||||
public default String[] getSuggestPopularWordFieldsAsArray() {
|
||||
return StreamUtil.of(getSuggestPopularWordFields().split("\n")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSuggestPopularWordFields().split("\n")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getSuggestPopularWordTags();
|
||||
|
||||
public default String[] getSuggestPopularWordTagsAsArray() {
|
||||
return StreamUtil.of(getSuggestPopularWordTags().split("\n")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSuggestPopularWordTags().split("\n")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getSuggestPopularWordExcludes();
|
||||
|
||||
public default String[] getSuggestPopularWordExcludesAsArray() {
|
||||
return StreamUtil.of(getSuggestPopularWordExcludes().split("\n")).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getSuggestPopularWordExcludes().split("\n")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
String getQueryReplaceTermWithPrefixQuery();
|
||||
|
@ -689,7 +699,7 @@ public interface FessProp {
|
|||
if (StringUtil.isNotBlank(getQueryDefaultLanguages())) {
|
||||
String[] langs = (String[]) propMap.get("queryDefaultLanguages");
|
||||
if (langs == null) {
|
||||
langs = StreamUtil.of(getQueryDefaultLanguages().split(",")).map(s -> s.trim()).toArray(n -> new String[n]);
|
||||
langs = stream(getQueryDefaultLanguages().split(",")).get(stream -> stream.map(s -> s.trim()).toArray(n -> new String[n]));
|
||||
propMap.put("queryDefaultLanguages", langs);
|
||||
|
||||
}
|
||||
|
@ -707,13 +717,15 @@ public interface FessProp {
|
|||
@SuppressWarnings("unchecked")
|
||||
Map<String, String> params = (Map<String, String>) propMap.get(QUERY_LANGUAGE_MAPPING);
|
||||
if (params == null) {
|
||||
params = StreamUtil.of(getQueryLanguageMapping().split("\n")).filter(StringUtil::isNotBlank).map(v -> {
|
||||
final String[] values = v.split("=");
|
||||
if (values.length == 2) {
|
||||
return new Pair<>(values[0], values[1]);
|
||||
}
|
||||
return null;
|
||||
}).collect(Collectors.toMap(Pair::getFirst, d -> d.getSecond()));
|
||||
params =
|
||||
stream(getQueryLanguageMapping().split("\n")).get(
|
||||
stream -> (Map<String, String>) stream.filter(StringUtil::isNotBlank).map(v -> {
|
||||
final String[] values = v.split("=");
|
||||
if (values.length == 2) {
|
||||
return new Pair<>(values[0], values[1]);
|
||||
}
|
||||
return null;
|
||||
}).collect(Collectors.toMap(Pair::getFirst, d -> d.getSecond())));
|
||||
propMap.put(QUERY_LANGUAGE_MAPPING, params);
|
||||
}
|
||||
|
||||
|
@ -739,14 +751,16 @@ public interface FessProp {
|
|||
String getSupportedUploadedFiles();
|
||||
|
||||
public default boolean isSupportedUploadedFile(final String name) {
|
||||
return StreamUtil.of(getSuggestPopularWordExcludes().split(",")).filter(StringUtil::isNotBlank).anyMatch(s -> s.equals(name));
|
||||
return stream(getSuggestPopularWordExcludes().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).anyMatch(s -> s.equals(name)));
|
||||
}
|
||||
|
||||
String getLdapAdminUserObjectClasses();
|
||||
|
||||
public default Attribute getLdapAdminUserObjectClassAttribute() {
|
||||
final Attribute oc = new BasicAttribute("objectClass");
|
||||
StreamUtil.of(getLdapAdminUserObjectClasses().split(",")).filter(StringUtil::isNotBlank).forEach(s -> oc.add(s.trim()));
|
||||
stream(getLdapAdminUserObjectClasses().split(",")).of(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).forEach(s -> oc.add(s.trim())));
|
||||
return oc;
|
||||
}
|
||||
|
||||
|
@ -771,7 +785,8 @@ public interface FessProp {
|
|||
|
||||
public default Attribute getLdapAdminRoleObjectClassAttribute() {
|
||||
final Attribute oc = new BasicAttribute("objectClass");
|
||||
StreamUtil.of(getLdapAdminRoleObjectClasses().split(",")).filter(StringUtil::isNotBlank).forEach(s -> oc.add(s.trim()));
|
||||
stream(getLdapAdminRoleObjectClasses().split(",")).of(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).forEach(s -> oc.add(s.trim())));
|
||||
return oc;
|
||||
}
|
||||
|
||||
|
@ -796,7 +811,8 @@ public interface FessProp {
|
|||
|
||||
public default Attribute getLdapAdminGroupObjectClassAttribute() {
|
||||
final Attribute oc = new BasicAttribute("objectClass");
|
||||
StreamUtil.of(getLdapAdminGroupObjectClasses().split(",")).filter(StringUtil::isNotBlank).forEach(s -> oc.add(s.trim()));
|
||||
stream(getLdapAdminGroupObjectClasses().split(",")).of(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).forEach(s -> oc.add(s.trim())));
|
||||
return oc;
|
||||
}
|
||||
|
||||
|
@ -820,7 +836,7 @@ public interface FessProp {
|
|||
String getAuthenticationAdminUsers();
|
||||
|
||||
public default boolean isAdminUser(final String username) {
|
||||
return StreamUtil.of(getAuthenticationAdminUsers().split(",")).anyMatch(s -> s.equals(username));
|
||||
return stream(getAuthenticationAdminUsers().split(",")).get(stream -> stream.anyMatch(s -> s.equals(username)));
|
||||
}
|
||||
|
||||
boolean isLdapAdminEnabled();
|
||||
|
@ -835,23 +851,23 @@ public interface FessProp {
|
|||
String getCrawlerWebProtocols();
|
||||
|
||||
public default String[] getCrawlerWebProtocolsAsArray() {
|
||||
return StreamUtil.of(getCrawlerWebProtocols().split(",")).filter(StringUtil::isNotBlank).map(s -> s.trim() + ":")
|
||||
.toArray(n -> new String[n]);
|
||||
return stream(getCrawlerWebProtocols().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).map(s -> s.trim() + ":").toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
public default boolean isValidCrawlerWebProtocol(final String url) {
|
||||
return StreamUtil.of(getCrawlerWebProtocolsAsArray()).anyMatch(s -> url.startsWith(s));
|
||||
return stream(getCrawlerWebProtocolsAsArray()).get(stream -> stream.anyMatch(s -> url.startsWith(s)));
|
||||
}
|
||||
|
||||
String getCrawlerFileProtocols();
|
||||
|
||||
public default String[] getCrawlerFileProtocolsAsArray() {
|
||||
return StreamUtil.of(getCrawlerFileProtocols().split(",")).filter(StringUtil::isNotBlank).map(s -> s.trim() + ":")
|
||||
.toArray(n -> new String[n]);
|
||||
return stream(getCrawlerFileProtocols().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).map(s -> s.trim() + ":").toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
public default boolean isValidCrawlerFileProtocol(final String url) {
|
||||
return StreamUtil.of(getCrawlerFileProtocolsAsArray()).anyMatch(s -> url.startsWith(s));
|
||||
return stream(getCrawlerFileProtocolsAsArray()).get(stream -> stream.anyMatch(s -> url.startsWith(s)));
|
||||
}
|
||||
|
||||
public default void processSearchPreference(final SearchRequestBuilder searchRequestBuilder, final OptionalThing<FessUserBean> userBean) {
|
||||
|
@ -877,19 +893,21 @@ public interface FessProp {
|
|||
|
||||
public default String[] getSearchDefaultPermissionsAsArray() {
|
||||
final PermissionHelper permissionHelper = ComponentUtil.getPermissionHelper();
|
||||
return StreamUtil.of(getRoleSearchDefaultPermissions().split(",")).map(p -> permissionHelper.encode(p))
|
||||
.filter(StringUtil::isNotBlank).distinct().toArray(n -> new String[n]);
|
||||
return stream(getRoleSearchDefaultPermissions().split(","))
|
||||
.get(stream -> stream.map(p -> permissionHelper.encode(p)).filter(StringUtil::isNotBlank).distinct()
|
||||
.toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
public default String getSearchDefaultDisplayPermission() {
|
||||
return StreamUtil.of(getRoleSearchDefaultPermissions().split(",")).filter(StringUtil::isNotBlank).distinct()
|
||||
.collect(Collectors.joining("\n"));
|
||||
return stream(getRoleSearchDefaultPermissions().split(",")).get(
|
||||
stream -> stream.filter(StringUtil::isNotBlank).distinct().collect(Collectors.joining("\n")));
|
||||
}
|
||||
|
||||
String getQueryGeoFields();
|
||||
|
||||
public default String[] getQueryGeoFieldsAsArray() {
|
||||
return StreamUtil.of(getQueryGeoFields().split(",")).map(s -> s.trim()).filter(StringUtil::isNotBlank).toArray(n -> new String[n]);
|
||||
return stream(getQueryGeoFields().split(",")).get(
|
||||
stream -> stream.map(s -> s.trim()).filter(StringUtil::isNotBlank).toArray(n -> new String[n]));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -15,6 +15,8 @@
|
|||
*/
|
||||
package org.codelibs.fess.util;
|
||||
|
||||
import static org.codelibs.core.stream.StreamUtil.stream;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
import org.codelibs.core.lang.StringUtil;
|
||||
|
@ -33,10 +35,10 @@ public class QueryStringBuilder {
|
|||
if (StringUtil.isNotBlank(query)) {
|
||||
queryBuf.append('(').append(query).append(')');
|
||||
}
|
||||
StreamUtil.of(extraQueries)
|
||||
.filter(q -> StringUtil.isNotBlank(q) && q.length() <= fessConfig.getQueryMaxLengthAsInteger().intValue())
|
||||
.forEach(q -> queryBuf.append(' ').append(q));
|
||||
StreamUtil.of(fieldMap).forEach(entry -> {
|
||||
stream(extraQueries).of(
|
||||
stream -> stream.filter(q -> StringUtil.isNotBlank(q) && q.length() <= fessConfig.getQueryMaxLengthAsInteger().intValue())
|
||||
.forEach(q -> queryBuf.append(' ').append(q)));
|
||||
stream(fieldMap).of(stream -> stream.forEach(entry -> {
|
||||
final String key = entry.getKey();
|
||||
final String[] values = entry.getValue();
|
||||
if (values == null) {
|
||||
|
@ -56,7 +58,7 @@ public class QueryStringBuilder {
|
|||
}
|
||||
queryBuf.append(')');
|
||||
}
|
||||
});
|
||||
}));
|
||||
return queryBuf.toString();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,49 +0,0 @@
|
|||
/*
|
||||
* Copyright 2012-2016 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.fess.util;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class StreamUtil {
|
||||
@SafeVarargs
|
||||
public static <T> Stream<T> of(final T... values) {
|
||||
if (values != null) {
|
||||
return Arrays.stream(values);
|
||||
} else {
|
||||
return Collections.<T> emptyList().stream();
|
||||
}
|
||||
}
|
||||
|
||||
public static Stream<String> splitOf(final String value, final String regex) {
|
||||
if (value != null) {
|
||||
return Arrays.stream(value.split(regex));
|
||||
} else {
|
||||
return Collections.<String> emptyList().stream();
|
||||
}
|
||||
}
|
||||
|
||||
public static <K, V> Stream<Map.Entry<K, V>> of(final Map<K, V> map) {
|
||||
if (map != null) {
|
||||
return map.entrySet().stream();
|
||||
} else {
|
||||
return Collections.<K, V> emptyMap().entrySet().stream();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -1,51 +0,0 @@
|
|||
/*
|
||||
* Copyright 2012-2016 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.fess.util;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.codelibs.fess.unit.UnitFessTestCase;
|
||||
|
||||
public class StreamUtilTest extends UnitFessTestCase {
|
||||
|
||||
public void test_ofValues() {
|
||||
String[] values = { "value1", "value2" };
|
||||
Stream<String> stream = StreamUtil.of(values[0], values[1]);
|
||||
Object[] array = stream.toArray();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
assertEquals(values[i], array[i]);
|
||||
}
|
||||
}
|
||||
|
||||
public void test_ofNull() {
|
||||
assertEquals(0, StreamUtil.of().toArray().length);
|
||||
Object[] o = {};
|
||||
assertEquals(0, StreamUtil.of(o).toArray().length);
|
||||
Map<Object, Object> map = new HashMap<Object, Object>();
|
||||
assertEquals(0, StreamUtil.of(map).toArray().length);
|
||||
}
|
||||
|
||||
public void test_ofMap() {
|
||||
Map<String, String> map = new HashMap<String, String>();
|
||||
map.put("key1", "value1");
|
||||
map.put("key2", "value2");
|
||||
Stream<Map.Entry<String, String>> stream = StreamUtil.of(map);
|
||||
stream.forEach(m -> assertEquals(map.get(m.getKey()), m.getValue()));
|
||||
}
|
||||
|
||||
}
|
Loading…
Add table
Reference in a new issue