From ea112ae4be85cb80b97ff90deb01bc23599d3a3a Mon Sep 17 00:00:00 2001
From: Shinsuke Sugaya <shinsuke@yahoo.co.jp>
Date: Fri, 30 Oct 2015 06:32:47 +0900
Subject: [PATCH] add tomcat_config.properties

---
 pom.xml                                       |  2 ++
 src/main/assemblies/files/fess.in.sh          |  1 +
 .../assemblies/files/tomcat_config.properties |  9 ++++++
 src/main/assemblies/package.xml               |  1 +
 src/main/java/org/codelibs/fess/FessBoot.java | 31 ++++++++++++-------
 src/main/resources/fess_env.properties        |  6 +---
 .../resources/fess_env_production.properties  |  6 +---
 7 files changed, 34 insertions(+), 22 deletions(-)
 create mode 100644 src/main/assemblies/files/tomcat_config.properties

diff --git a/pom.xml b/pom.xml
index c05150aa6..20ffe4f8e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -556,6 +556,8 @@
 			<groupId>org.dbflute.tomcat</groupId>
 			<artifactId>tomcat-boot</artifactId>
 			<version>${tomcat.boot.version}</version>
+			<!-- Disable scope at development on IDEA -->
+			<scope>provided</scope>
 		</dependency>
 
 		<!-- test -->
diff --git a/src/main/assemblies/files/fess.in.sh b/src/main/assemblies/files/fess.in.sh
index 0749e8292..b4a8e66ec 100755
--- a/src/main/assemblies/files/fess.in.sh
+++ b/src/main/assemblies/files/fess.in.sh
@@ -80,4 +80,5 @@ FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.log.name=$APP_NAME"
 FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.log.path=$FESS_HOME/logs"
 FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.log.level=info"
 FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dlasta.env=production"
+FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dtomcat.config.path=tomcat_config.properties"
 
diff --git a/src/main/assemblies/files/tomcat_config.properties b/src/main/assemblies/files/tomcat_config.properties
new file mode 100644
index 000000000..6a89128b8
--- /dev/null
+++ b/src/main/assemblies/files/tomcat_config.properties
@@ -0,0 +1,9 @@
+# ========================================================================================
+#                                                                                     Web
+#                                                                                    =====
+# ----------------------------------------------------------
+#                                                     Tomcat
+#                                                     ------
+tomcat.URIEncoding = UTF-8
+tomcat.useBodyEncodingForURI = true
+
diff --git a/src/main/assemblies/package.xml b/src/main/assemblies/package.xml
index 49896432c..61252531c 100644
--- a/src/main/assemblies/package.xml
+++ b/src/main/assemblies/package.xml
@@ -51,6 +51,7 @@
 			<directory>${project.basedir}/src/main/assemblies/files</directory>
 			<includes>
 				<include>logging.properties</include>
+				<include>tomcat_config.properties</include>
 			</includes>
 			<outputDirectory>fess-${project.version}/lib/classes</outputDirectory>
 		</fileSet>
diff --git a/src/main/java/org/codelibs/fess/FessBoot.java b/src/main/java/org/codelibs/fess/FessBoot.java
index 0b5e9e802..f6dec9631 100644
--- a/src/main/java/org/codelibs/fess/FessBoot.java
+++ b/src/main/java/org/codelibs/fess/FessBoot.java
@@ -6,8 +6,6 @@ import org.dbflute.tomcat.TomcatBoot;
 
 public class FessBoot extends TomcatBoot {
 
-    private static final String FESS_ENV_PROPERTIES = "fess_env.properties";
-
     private static final String LOGGING_PROPERTIES = "logging.properties";
 
     private static final String FESS_CONTEXT_PATH = "fess.context.path";
@@ -22,6 +20,8 @@ public class FessBoot extends TomcatBoot {
 
     private static final String JAVA_IO_TMPDIR = "java.io.tmpdir";
 
+    private static final String TOMCAT_CONFIG_PATH = "tomcat.config.path";
+
     public FessBoot(final int port, final String contextPath) {
         super(port, contextPath);
     }
@@ -60,16 +60,19 @@ public class FessBoot extends TomcatBoot {
             System.setProperty(JAVA_IO_TMPDIR, value);
         }
 
-        new FessBoot(getPort(), getContextPath()) //
-                .useTldDetect() // for JSP
-                .configure(FESS_ENV_PROPERTIES) // e.g. URIEncoding
-                .logging(LOGGING_PROPERTIES, op -> {
-                    op.ignoreNoFile();
-                    final String fessHomeDir = System.getProperty("fess.home");
-                    if (fessHomeDir != null) {
-                        op.replace("fess.home", fessHomeDir);
-                    }
-                }) // uses jdk14logger
+        final String tomcatConfigPath = getTomcatConfigPath();
+        TomcatBoot tomcatBoot = new FessBoot(getPort(), getContextPath()) //
+                .useTldDetect(); // for JSP
+        if (tomcatConfigPath != null) {
+            tomcatBoot.configure(tomcatConfigPath); // e.g. URIEncoding
+        }
+        tomcatBoot.logging(LOGGING_PROPERTIES, op -> {
+            op.ignoreNoFile();
+            final String fessHomeDir = System.getProperty("fess.home");
+            if (fessHomeDir != null) {
+                op.replace("fess.home", fessHomeDir);
+            }
+        }) // uses jdk14logger
                 .asDevelopment(isNoneEnv()).bootAwait();
     }
 
@@ -92,4 +95,8 @@ public class FessBoot extends TomcatBoot {
         }
         return "/fess";
     }
+
+    protected static String getTomcatConfigPath() {
+        return System.getProperty(TOMCAT_CONFIG_PATH);
+    }
 }
diff --git a/src/main/resources/fess_env.properties b/src/main/resources/fess_env.properties
index 7aa7f8425..b75916a75 100644
--- a/src/main/resources/fess_env.properties
+++ b/src/main/resources/fess_env.properties
@@ -45,8 +45,4 @@ mail.return.path = root@localhost
 # ========================================================================================
 #                                                                                     Web
 #                                                                                    =====
-# ----------------------------------------------------------
-#                                                     Tomcat
-#                                                     ------
-tomcat.URIEncoding = UTF-8
-tomcat.useBodyEncodingForURI = true
+
diff --git a/src/main/resources/fess_env_production.properties b/src/main/resources/fess_env_production.properties
index 683bba2ed..f0f16fd45 100644
--- a/src/main/resources/fess_env_production.properties
+++ b/src/main/resources/fess_env_production.properties
@@ -44,8 +44,4 @@ mail.return.path = root@localhost
 # ========================================================================================
 #                                                                                     Web
 #                                                                                    =====
-# ----------------------------------------------------------
-#                                                     Tomcat
-#                                                     ------
-tomcat.URIEncoding = UTF-8
-tomcat.useBodyEncodingForURI = true
+
-- 
GitLab