Quellcode durchsuchen

fix #1777 add override conf path

Shinsuke Sugaya vor 7 Jahren
Ursprung
Commit
7e14a8daad

+ 5 - 0
src/main/java/org/codelibs/fess/job/CrawlJob.java

@@ -42,6 +42,7 @@ 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.ResourceUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -222,6 +223,10 @@ public class CrawlJob {
         // -cp
         cmdList.add("-cp");
         final StringBuilder buf = new StringBuilder(100);
+        ResourceUtil.getOverrideConfPath().ifPresent(p -> {
+            buf.append(p);
+            buf.append(cpSeparator);
+        });
         final String confPath = System.getProperty(Constants.FESS_CONF_PATH);
         if (StringUtil.isNotBlank(confPath)) {
             buf.append(confPath);

+ 5 - 0
src/main/java/org/codelibs/fess/job/GenerateThumbnailJob.java

@@ -39,6 +39,7 @@ 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.ResourceUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -153,6 +154,10 @@ public class GenerateThumbnailJob {
         // -cp
         cmdList.add("-cp");
         final StringBuilder buf = new StringBuilder(100);
+        ResourceUtil.getOverrideConfPath().ifPresent(p -> {
+            buf.append(p);
+            buf.append(cpSeparator);
+        });
         final String confPath = System.getProperty(Constants.FESS_CONF_PATH);
         if (StringUtil.isNotBlank(confPath)) {
             buf.append(confPath);

+ 5 - 0
src/main/java/org/codelibs/fess/job/SuggestJob.java

@@ -39,6 +39,7 @@ 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.ResourceUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -139,6 +140,10 @@ public class SuggestJob {
         // -cp
         cmdList.add("-cp");
         final StringBuilder buf = new StringBuilder(100);
+        ResourceUtil.getOverrideConfPath().ifPresent(p -> {
+            buf.append(p);
+            buf.append(cpSeparator);
+        });
         final String confPath = System.getProperty(Constants.FESS_CONF_PATH);
         if (StringUtil.isNotBlank(confPath)) {
             buf.append(confPath);

+ 22 - 2
src/main/java/org/codelibs/fess/util/ResourceUtil.java

@@ -28,9 +28,12 @@ import javax.servlet.ServletContext;
 import org.codelibs.core.lang.StringUtil;
 import org.codelibs.fess.Constants;
 import org.codelibs.fess.mylasta.direction.FessConfig;
+import org.dbflute.optional.OptionalEntity;
 import org.lastaflute.web.util.LaServletContextUtil;
 
 public class ResourceUtil {
+    private static final String FESS_OVERRIDE_CONF_PATH = "FESS_OVERRIDE_CONF_PATH";
+
     private static final String FESS_APP_TYPE = "FESS_APP_TYPE";
 
     private static final String FESS_APP_DOCKER = "docker";
@@ -48,9 +51,26 @@ public class ResourceUtil {
         return fessConfig.getElasticsearchHttpUrl();
     }
 
+    public static String getAppType() {
+        final String appType = System.getenv(FESS_APP_TYPE);
+        if (StringUtil.isNotBlank(appType)) {
+            return appType;
+        }
+        return StringUtil.EMPTY;
+    }
+
+    public static OptionalEntity<String> getOverrideConfPath() {
+        if (FESS_APP_DOCKER.equalsIgnoreCase(getAppType())) {
+            final String confPath = System.getenv(FESS_OVERRIDE_CONF_PATH);
+            if (StringUtil.isNotBlank(confPath)) {
+                return OptionalEntity.of(confPath);
+            }
+        }
+        return OptionalEntity.empty();
+    }
+
     public static Path getConfPath(final String... names) {
-        final String fessAppType = System.getenv(FESS_APP_TYPE);
-        if (FESS_APP_DOCKER.equalsIgnoreCase(fessAppType)) {
+        if (FESS_APP_DOCKER.equalsIgnoreCase(getAppType())) {
             final Path confPath = Paths.get("/opt/fess", names);
             if (Files.exists(confPath)) {
                 return confPath;