Browse Source

#2649 add node manager

Shinsuke Sugaya 3 years ago
parent
commit
cafb95491c
1 changed files with 10 additions and 1 deletions
  1. 10 1
      src/main/java/org/codelibs/fess/helper/CurlHelper.java

+ 10 - 1
src/main/java/org/codelibs/fess/helper/CurlHelper.java

@@ -15,6 +15,8 @@
  */
 package org.codelibs.fess.helper;
 
+import static org.codelibs.core.stream.StreamUtil.split;
+
 import java.io.FileInputStream;
 import java.io.InputStream;
 import java.nio.charset.StandardCharsets;
@@ -32,6 +34,8 @@ import org.apache.logging.log4j.Logger;
 import org.codelibs.core.lang.StringUtil;
 import org.codelibs.curl.Curl.Method;
 import org.codelibs.curl.CurlRequest;
+import org.codelibs.fesen.client.curl.FesenRequest;
+import org.codelibs.fesen.client.node.NodeManager;
 import org.codelibs.fess.mylasta.direction.FessConfig;
 import org.codelibs.fess.util.ComponentUtil;
 import org.codelibs.fess.util.ResourceUtil;
@@ -41,6 +45,8 @@ public class CurlHelper {
 
     private SSLSocketFactory sslSocketFactory;
 
+    private NodeManager nodeManager;
+
     @PostConstruct
     public void init() {
         final FessConfig fessConfig = ComponentUtil.getFessConfig();
@@ -66,6 +72,9 @@ public class CurlHelper {
                 logger.warn("Failed to load {}", authorities, e);
             }
         }
+        final String[] hosts = split(ResourceUtil.getFesenHttpUrl(), ",")
+                .get(stream -> stream.map(s -> s.trim()).filter(StringUtil::isNotEmpty).toArray(n -> new String[n]));
+        nodeManager = new NodeManager(hosts);
     }
 
     public CurlRequest get(final String path) {
@@ -85,7 +94,7 @@ public class CurlHelper {
     }
 
     public CurlRequest request(final Method method, final String path) {
-        final CurlRequest request = new CurlRequest(method, ResourceUtil.getFesenHttpUrl() + path);
+        final CurlRequest request = new FesenRequest(new CurlRequest(method, null), nodeManager, path);
         final FessConfig fessConfig = ComponentUtil.getFessConfig();
         final String username = fessConfig.getElasticsearchUsername();
         final String password = fessConfig.getElasticsearchPassword();