diff --git a/plugin.xml b/plugin.xml
index 04c583c46..d9c0245e4 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -39,15 +39,6 @@
-
-
-
-
-
-
-
-
-
diff --git a/src/main/java/org/codelibs/fess/api/json/JsonApiManager.java b/src/main/java/org/codelibs/fess/api/json/JsonApiManager.java
index 49c313507..e7add6573 100644
--- a/src/main/java/org/codelibs/fess/api/json/JsonApiManager.java
+++ b/src/main/java/org/codelibs/fess/api/json/JsonApiManager.java
@@ -187,7 +187,7 @@ public class JsonApiManager extends BaseJsonApiManager {
}
protected void processPingRequest(final HttpServletRequest request, final HttpServletResponse response, final FilterChain chain) {
- final SearchEngineClient searchEngineClient = ComponentUtil.getFessEsClient();
+ final SearchEngineClient searchEngineClient = ComponentUtil.getSearchEngineClient();
int status;
Exception err = null;
try {
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 ff3c7b1ce..48c5a5a6d 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
@@ -67,6 +67,7 @@ import org.codelibs.fess.util.ComponentUtil;
import org.codelibs.fess.util.GsaConfigParser;
import org.codelibs.fess.util.RenderDataUtil;
import org.codelibs.fess.util.ResourceUtil;
+import org.codelibs.fess.util.SearchEngineUtil;
import org.lastaflute.core.magic.async.AsyncManager;
import org.lastaflute.web.Execute;
import org.lastaflute.web.response.ActionResponse;
@@ -332,9 +333,19 @@ public class AdminBackupAction extends FessAdminAction {
filename = id + ".bulk";
}
return asStream(filename).contentTypeOctetStream().stream(out -> {
- try (CurlResponse response = ComponentUtil.getCurlHelper().get("/" + index + "/_data").param("format", "json")
- .param("scroll", fessConfig.getIndexScrollSearchTimeout()).execute()) {
- out.write(response.getContentAsStream());
+ try (final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out.stream(), Constants.CHARSET_UTF_8))) {
+ SearchEngineUtil.scroll(index, hit -> {
+ try {
+ writer.write("{\"index\":{\"_index\":\"" + index + "\",\"_id\":\""
+ + StringEscapeUtils.escapeJson(hit.getId()) + "\"}}\n");
+ writer.write(hit.getSourceAsString());
+ writer.write("\n");
+ } catch (IOException e) {
+ throw new IORuntimeException(e);
+ }
+ return true;
+ });
+ writer.flush();
}
});
}
diff --git a/src/main/java/org/codelibs/fess/app/web/admin/maintenance/AdminMaintenanceAction.java b/src/main/java/org/codelibs/fess/app/web/admin/maintenance/AdminMaintenanceAction.java
index 0a334a0cc..9147cdc6d 100644
--- a/src/main/java/org/codelibs/fess/app/web/admin/maintenance/AdminMaintenanceAction.java
+++ b/src/main/java/org/codelibs/fess/app/web/admin/maintenance/AdminMaintenanceAction.java
@@ -15,7 +15,9 @@
*/
package org.codelibs.fess.app.web.admin.maintenance;
+import java.io.BufferedWriter;
import java.io.IOException;
+import java.io.OutputStreamWriter;
import java.net.InetAddress;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -30,8 +32,10 @@ import java.util.zip.ZipOutputStream;
import javax.annotation.Resource;
+import org.apache.commons.text.StringEscapeUtils;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import org.codelibs.core.exception.IORuntimeException;
import org.codelibs.core.io.CopyUtil;
import org.codelibs.core.lang.StringUtil;
import org.codelibs.curl.CurlResponse;
@@ -42,6 +46,7 @@ import org.codelibs.fess.app.web.base.FessAdminAction;
import org.codelibs.fess.es.client.SearchEngineClient;
import org.codelibs.fess.mylasta.direction.FessConfig.SimpleImpl;
import org.codelibs.fess.util.ComponentUtil;
+import org.codelibs.fess.util.SearchEngineUtil;
import org.lastaflute.web.Execute;
import org.lastaflute.web.response.ActionResponse;
import org.lastaflute.web.response.HtmlResponse;
@@ -218,9 +223,20 @@ public class AdminMaintenanceAction extends FessAdminAction {
final ZipEntry entry = new ZipEntry(id + "/fess_basic_config.bulk");
try {
zos.putNextEntry(entry);
- try (CurlResponse response = ComponentUtil.getCurlHelper().get("/.fess_basic_config/_data").param("format", "json")
- .param("scroll", fessConfig.getIndexScrollSearchTimeout()).execute()) {
- CopyUtil.copy(response.getContentAsStream(), zos);
+ final String index = ".fess_basic_config";
+ try (final BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(zos, Constants.CHARSET_UTF_8))) {
+ SearchEngineUtil.scroll(index, hit -> {
+ try {
+ writer.write("{\"index\":{\"_index\":\"" + index + "\",\"_id\":\"" + StringEscapeUtils.escapeJson(hit.getId())
+ + "\"}}\n");
+ writer.write(hit.getSourceAsString());
+ writer.write("\n");
+ } catch (IOException e) {
+ throw new IORuntimeException(e);
+ }
+ return true;
+ });
+ writer.flush();
}
} catch (final IOException e) {
logger.warn("Failed to access system.properties.", e);
diff --git a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java
index 64cd71575..40be50a87 100644
--- a/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java
+++ b/src/main/java/org/codelibs/fess/app/web/admin/searchlist/AdminSearchlistAction.java
@@ -385,7 +385,7 @@ public class AdminSearchlistAction extends FessAdminAction {
public static OptionalEntity