diff --git a/pom.xml b/pom.xml index 52c3d735b..d789c5e49 100644 --- a/pom.xml +++ b/pom.xml @@ -60,7 +60,7 @@ 1.0.9-SNAPSHOT - 2.1.4-SNAPSHOT + 2.2.0-SNAPSHOT 2.3.2 @@ -1054,7 +1054,7 @@ org.codelibs corelib - 0.3.4 + 0.3.5-SNAPSHOT commons-io diff --git a/src/main/java/org/codelibs/fess/api/suggest/SuggestApiManager.java b/src/main/java/org/codelibs/fess/api/suggest/SuggestApiManager.java index 21699a2b2..af5a66e05 100644 --- a/src/main/java/org/codelibs/fess/api/suggest/SuggestApiManager.java +++ b/src/main/java/org/codelibs/fess/api/suggest/SuggestApiManager.java @@ -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()); diff --git a/src/main/java/org/codelibs/fess/app/service/GroupService.java b/src/main/java/org/codelibs/fess/app/service/GroupService.java index f129abb7d..fbea37de9 100644 --- a/src/main/java/org/codelibs/fess/app/service/GroupService.java +++ b/src/main/java/org/codelibs/fess/app/service/GroupService.java @@ -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); + }); } diff --git a/src/main/java/org/codelibs/fess/app/service/RoleService.java b/src/main/java/org/codelibs/fess/app/service/RoleService.java index 779de9407..4b7874386 100644 --- a/src/main/java/org/codelibs/fess/app/service/RoleService.java +++ b/src/main/java/org/codelibs/fess/app/service/RoleService.java @@ -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) { diff --git a/src/main/java/org/codelibs/fess/app/web/admin/backup/AdminBackupAction.java b/src/main/java/org/codelibs/fess/app/web/admin/backup/AdminBackupAction.java index d18463324..8b5daa902 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/backup/AdminBackupAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/backup/AdminBackupAction.java @@ -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> getBackupItems() { - return StreamUtil.of(fessConfig.getIndexBackupTargetsAsArray()).filter(name -> StringUtil.isNotBlank(name)).map(name -> { - final Map 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 map = new HashMap<>(); + map.put("id", name); + map.put("name", name); + return map; + }).collect(Collectors.toList())); } private HtmlResponse asIndexHtml() { diff --git a/src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java b/src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java index f16834e0f..1e896feb9 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/dataconfig/AdminDataconfigAction.java @@ -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; }); } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/dict/seunjeon/AdminDictSeunjeonAction.java b/src/main/java/org/codelibs/fess/app/web/admin/dict/seunjeon/AdminDictSeunjeonAction.java index d59b535dc..ca725daf5 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/dict/seunjeon/AdminDictSeunjeonAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/dict/seunjeon/AdminDictSeunjeonAction.java @@ -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])); } // =================================================================================== diff --git a/src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java b/src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java index 88f8488f0..255fe8b18 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/fileconfig/AdminFileconfigAction.java @@ -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; }); } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java b/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java index 5ad918509..64f9a402b 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/general/AdminGeneralAction.java @@ -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)); diff --git a/src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java b/src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java index 78d48723d..09c6a88f4 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/labeltype/AdminLabeltypeAction.java @@ -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; }); } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java index 5545cfeb1..26fc39fe4 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/ListForm.java @@ -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 diff --git a/src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java b/src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java index eb97ec9a9..0943fcee5 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/webconfig/AdminWebconfigAction.java @@ -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; }); } diff --git a/src/main/java/org/codelibs/fess/app/web/base/SearchForm.java b/src/main/java/org/codelibs/fess/app/web/base/SearchForm.java index e0a6805b8..3ebf46797 100644 --- a/src/main/java/org/codelibs/fess/app/web/base/SearchForm.java +++ b/src/main/java/org/codelibs/fess/app/web/base/SearchForm.java @@ -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 diff --git a/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java b/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java index 3333f7c4c..c4679dc36 100644 --- a/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java +++ b/src/main/java/org/codelibs/fess/app/web/search/SearchAction.java @@ -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 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)); diff --git a/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java b/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java index 9117cfdf8..31f9158bd 100644 --- a/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java +++ b/src/main/java/org/codelibs/fess/crawler/FessCrawlerThread.java @@ -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 dataMap = new HashMap<>(); dataMap.put(fessConfig.getIndexFieldUrl(), url); final List 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 diff --git a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java index 5cf3649cf..14f2e27f1 100644 --- a/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java +++ b/src/main/java/org/codelibs/fess/crawler/transformer/AbstractFessFileTransformer.java @@ -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 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 diff --git a/src/main/java/org/codelibs/fess/crawler/transformer/FessXpathTransformer.java b/src/main/java/org/codelibs/fess/crawler/transformer/FessXpathTransformer.java index 9d2aeaaa0..3ce3d6a96 100644 --- a/src/main/java/org/codelibs/fess/crawler/transformer/FessXpathTransformer.java +++ b/src/main/java/org/codelibs/fess/crawler/transformer/FessXpathTransformer.java @@ -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 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)); diff --git a/src/main/java/org/codelibs/fess/ds/impl/AbstractDataStoreImpl.java b/src/main/java/org/codelibs/fess/ds/impl/AbstractDataStoreImpl.java index edf80754d..97731d428 100644 --- a/src/main/java/org/codelibs/fess/ds/impl/AbstractDataStoreImpl.java +++ b/src/main/java/org/codelibs/fess/ds/impl/AbstractDataStoreImpl.java @@ -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 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); diff --git a/src/main/java/org/codelibs/fess/ds/impl/CsvDataStoreImpl.java b/src/main/java/org/codelibs/fess/ds/impl/CsvDataStoreImpl.java index a696f6123..6e724022e 100644 --- a/src/main/java/org/codelibs/fess/ds/impl/CsvDataStoreImpl.java +++ b/src/main/java/org/codelibs/fess/ds/impl/CsvDataStoreImpl.java @@ -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."); } diff --git a/src/main/java/org/codelibs/fess/ds/impl/EsDataStoreImpl.java b/src/main/java/org/codelibs/fess/ds/impl/EsDataStoreImpl.java index 89cee3b39..479945f1f 100644 --- a/src/main/java/org/codelibs/fess/ds/impl/EsDataStoreImpl.java +++ b/src/main/java/org/codelibs/fess/ds/impl/EsDataStoreImpl.java @@ -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); } diff --git a/src/main/java/org/codelibs/fess/ds/impl/FileListIndexUpdateCallbackImpl.java b/src/main/java/org/codelibs/fess/ds/impl/FileListIndexUpdateCallbackImpl.java index e3e3012ab..f23b023b6 100644 --- a/src/main/java/org/codelibs/fess/ds/impl/FileListIndexUpdateCallbackImpl.java +++ b/src/main/java/org/codelibs/fess/ds/impl/FileListIndexUpdateCallbackImpl.java @@ -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 { diff --git a/src/main/java/org/codelibs/fess/entity/GeoInfo.java b/src/main/java/org/codelibs/fess/entity/GeoInfo.java index dc88fe4b8..763973e76 100644 --- a/src/main/java/org/codelibs/fess/entity/GeoInfo.java +++ b/src/main/java/org/codelibs/fess/entity/GeoInfo.java @@ -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> 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 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; } diff --git a/src/main/java/org/codelibs/fess/entity/QueryContext.java b/src/main/java/org/codelibs/fess/entity/QueryContext.java index b028a931b..fcbf31227 100644 --- a/src/main/java/org/codelibs/fess/entity/QueryContext.java +++ b/src/main/java/org/codelibs/fess/entity/QueryContext.java @@ -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() { diff --git a/src/main/java/org/codelibs/fess/entity/SearchRequestParams.java b/src/main/java/org/codelibs/fess/entity/SearchRequestParams.java index 6b8efd0f9..1fb791404 100644 --- a/src/main/java/org/codelibs/fess/entity/SearchRequestParams.java +++ b/src/main/java/org/codelibs/fess/entity/SearchRequestParams.java @@ -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) { diff --git a/src/main/java/org/codelibs/fess/es/client/FessEsClient.java b/src/main/java/org/codelibs/fess/es/client/FessEsClient.java index 19f45b2b9..347461940 100644 --- a/src/main/java/org/codelibs/fess/es/client/FessEsClient.java +++ b/src/main/java/org/codelibs/fess/es/client/FessEsClient.java @@ -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()); diff --git a/src/main/java/org/codelibs/fess/es/user/exentity/User.java b/src/main/java/org/codelibs/fess/es/user/exentity/User.java index 94fb41d19..87f24fd2b 100644 --- a/src/main/java/org/codelibs/fess/es/user/exentity/User.java +++ b/src/main/java/org/codelibs/fess/es/user/exentity/User.java @@ -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 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 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 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()]); } } diff --git a/src/main/java/org/codelibs/fess/exec/Crawler.java b/src/main/java/org/codelibs/fess/exec/Crawler.java index b02021858..dba1f877b 100644 --- a/src/main/java/org/codelibs/fess/exec/Crawler.java +++ b/src/main/java/org/codelibs/fess/exec/Crawler.java @@ -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)); diff --git a/src/main/java/org/codelibs/fess/helper/PopularWordHelper.java b/src/main/java/org/codelibs/fess/helper/PopularWordHelper.java index 49dbd9d59..c41f12217 100644 --- a/src/main/java/org/codelibs/fess/helper/PopularWordHelper.java +++ b/src/main/java/org/codelibs/fess/helper/PopularWordHelper.java @@ -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(); } diff --git a/src/main/java/org/codelibs/fess/helper/QueryHelper.java b/src/main/java/org/codelibs/fess/helper/QueryHelper.java index 4ccf2e18f..4358a82de 100644 --- a/src/main/java/org/codelibs/fess/helper/QueryHelper.java +++ b/src/main/java/org/codelibs/fess/helper/QueryHelper.java @@ -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 highlightedFields() { - return StreamUtil.of(highlightedFields); + public void highlightedFields(Consumer> 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 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)); diff --git a/src/main/java/org/codelibs/fess/helper/RoleQueryHelper.java b/src/main/java/org/codelibs/fess/helper/RoleQueryHelper.java index 0134479bb..7c4aecb96 100644 --- a/src/main/java/org/codelibs/fess/helper/RoleQueryHelper.java +++ b/src/main/java/org/codelibs/fess/helper/RoleQueryHelper.java @@ -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 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) { diff --git a/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java b/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java index e041b14fa..14d1b6b00 100644 --- a/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SearchLogHelper.java @@ -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 searchLogList = new ArrayList<>(); final Map 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 insertList = new ArrayList<>(userInfoMap.values()); diff --git a/src/main/java/org/codelibs/fess/helper/SuggestHelper.java b/src/main/java/org/codelibs/fess/helper/SuggestHelper.java index 1cae32435..065ef50c4 100644 --- a/src/main/java/org/codelibs/fess/helper/SuggestHelper.java +++ b/src/main/java/org/codelibs/fess/helper/SuggestHelper.java @@ -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 stream(final String value) { - return StreamUtil.of(value.split(",")).filter(v -> StringUtil.isNotBlank(v)); - } - } diff --git a/src/main/java/org/codelibs/fess/job/CrawlJob.java b/src/main/java/org/codelibs/fess/job/CrawlJob.java index dc659dea7..b5692afec 100644 --- a/src/main/java/org/codelibs/fess/job/CrawlJob.java +++ b/src/main/java/org/codelibs/fess/job/CrawlJob.java @@ -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()); diff --git a/src/main/java/org/codelibs/fess/job/SuggestJob.java b/src/main/java/org/codelibs/fess/job/SuggestJob.java index bc1fed9ee..7e1618066 100644 --- a/src/main/java/org/codelibs/fess/job/SuggestJob.java +++ b/src/main/java/org/codelibs/fess/job/SuggestJob.java @@ -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"); diff --git a/src/main/java/org/codelibs/fess/ldap/LdapManager.java b/src/main/java/org/codelibs/fess/ldap/LdapManager.java index dca9842f5..1e888f0cc 100644 --- a/src/main/java/org/codelibs/fess/ldap/LdapManager.java +++ b/src/main/java/org/codelibs/fess/ldap/LdapManager.java @@ -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 newGroupList = StreamUtil.of(user.getGroupNames()).collect(Collectors.toList()); - StreamUtil.of(user.getGroupNames()).forEach(name -> { + final List 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 newRoleList = StreamUtil.of(user.getRoleNames()).collect(Collectors.toList()); - StreamUtil.of(user.getRoleNames()).forEach(name -> { + final List 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> 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()) { diff --git a/src/main/java/org/codelibs/fess/ldap/LdapUser.java b/src/main/java/org/codelibs/fess/ldap/LdapUser.java index 62ecab8a6..4c4ca77b5 100644 --- a/src/main/java/org/codelibs/fess/ldap/LdapUser.java +++ b/src/main/java/org/codelibs/fess/ldap/LdapUser.java @@ -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 getEnvironment() { diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java b/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java index 6805c8e20..18f90ec5f 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessUserBean.java @@ -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 { // #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() { diff --git a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java index 67448f111..2be631a4c 100644 --- a/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java +++ b/src/main/java/org/codelibs/fess/mylasta/direction/FessProp.java @@ -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 keySet = new HashSet<>(); - map = StreamUtil.of(value.split("\n")).filter(StringUtil::isNotBlank).map(s -> { + map = stream(value.split("\n")).get(stream -> (Map) 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 keySet = new HashSet<>(); - map = StreamUtil.of(value.split("\n")).filter(StringUtil::isNotBlank).map(s -> { + map = stream(value.split("\n")).get(stream -> (Map) 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> params = (Map>) 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>) 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 params = (Map) 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) 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 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])); } } diff --git a/src/main/java/org/codelibs/fess/util/QueryStringBuilder.java b/src/main/java/org/codelibs/fess/util/QueryStringBuilder.java index 6b29a7caf..cf51b574c 100644 --- a/src/main/java/org/codelibs/fess/util/QueryStringBuilder.java +++ b/src/main/java/org/codelibs/fess/util/QueryStringBuilder.java @@ -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(); } diff --git a/src/main/java/org/codelibs/fess/util/StreamUtil.java b/src/main/java/org/codelibs/fess/util/StreamUtil.java deleted file mode 100644 index 39af27684..000000000 --- a/src/main/java/org/codelibs/fess/util/StreamUtil.java +++ /dev/null @@ -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 Stream of(final T... values) { - if (values != null) { - return Arrays.stream(values); - } else { - return Collections. emptyList().stream(); - } - } - - public static Stream splitOf(final String value, final String regex) { - if (value != null) { - return Arrays.stream(value.split(regex)); - } else { - return Collections. emptyList().stream(); - } - } - - public static Stream> of(final Map map) { - if (map != null) { - return map.entrySet().stream(); - } else { - return Collections. emptyMap().entrySet().stream(); - } - } - -} diff --git a/src/test/java/org/codelibs/fess/util/StreamUtilTest.java b/src/test/java/org/codelibs/fess/util/StreamUtilTest.java deleted file mode 100644 index 69b81627d..000000000 --- a/src/test/java/org/codelibs/fess/util/StreamUtilTest.java +++ /dev/null @@ -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 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 map = new HashMap(); - assertEquals(0, StreamUtil.of(map).toArray().length); - } - - public void test_ofMap() { - Map map = new HashMap(); - map.put("key1", "value1"); - map.put("key2", "value2"); - Stream> stream = StreamUtil.of(map); - stream.forEach(m -> assertEquals(map.get(m.getKey()), m.getValue())); - } - -}