diff --git a/src/main/assemblies/scripts/fess b/src/main/assemblies/files/fess
similarity index 100%
rename from src/main/assemblies/scripts/fess
rename to src/main/assemblies/files/fess
diff --git a/src/main/assemblies/scripts/fess.in.sh b/src/main/assemblies/files/fess.in.sh
similarity index 96%
rename from src/main/assemblies/scripts/fess.in.sh
rename to src/main/assemblies/files/fess.in.sh
index d3a819753..0749e8292 100755
--- a/src/main/assemblies/scripts/fess.in.sh
+++ b/src/main/assemblies/files/fess.in.sh
@@ -1,6 +1,6 @@
#!/bin/sh
-FESS_CLASSPATH=$FESS_HOME/lib
+FESS_CLASSPATH=$FESS_HOME/lib/classes
if [ "x$FESS_MIN_MEM" = "x" ]; then
FESS_MIN_MEM=256m
@@ -70,6 +70,7 @@ JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8"
# Application Configuration
APP_NAME=fess
ES_HOME=$FESS_HOME/es
+FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.home=$FESS_HOME"
FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.context.path=/$APP_NAME"
FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.port=8080"
FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfess.webapp.path=$FESS_HOME/app"
diff --git a/src/main/assemblies/files/logging.properties b/src/main/assemblies/files/logging.properties
new file mode 100644
index 000000000..87510d068
--- /dev/null
+++ b/src/main/assemblies/files/logging.properties
@@ -0,0 +1,10 @@
+handlers=java.util.logging.FileHandler
+.level=INFO
+
+java.util.logging.ConsoleHandler.level=INFO
+java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter
+
+java.util.logging.FileHandler.level=INFO
+java.util.logging.FileHandler.pattern=${fess.home}/logs/server_%g.log
+java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter
+java.util.logging.FileHandler.count=10
diff --git a/src/main/assemblies/package.xml b/src/main/assemblies/package.xml
index e50987a99..e2fe169e3 100644
--- a/src/main/assemblies/package.xml
+++ b/src/main/assemblies/package.xml
@@ -22,18 +22,25 @@
${project.build.directory}/tomcat-lib
- fess-${project.version}/lib
+ fess-${project.version}/lib/classes
${project.build.directory}/fess/WEB-INF/classes/org/codelibs/fess/
FessBoot**
- fess-${project.version}/lib/org/codelibs/fess
+ fess-${project.version}/lib/classes/org/codelibs/fess
+
+
+ ${project.basedir}/src/main/assemblies/files
+
+ logging.properties
+
+ fess-${project.version}/lib/classes
- ${project.basedir}/src/main/assemblies/scripts
+ ${project.basedir}/src/main/assemblies/files
0755
lf
@@ -44,7 +51,7 @@
- src/main/assemblies/scripts
+ src/main/assemblies/files
fess-${project.version}/logs
*
@@ -53,7 +60,7 @@
- src/main/assemblies/scripts
+ src/main/assemblies/files
fess-${project.version}/temp
*
@@ -67,7 +74,7 @@
- src/main/assemblies/scripts
+ src/main/assemblies/files
fess-${project.version}/es/data
*
diff --git a/src/main/java/org/codelibs/fess/FessBoot.java b/src/main/java/org/codelibs/fess/FessBoot.java
index 92dcc715c..e773c9c1f 100644
--- a/src/main/java/org/codelibs/fess/FessBoot.java
+++ b/src/main/java/org/codelibs/fess/FessBoot.java
@@ -1,11 +1,24 @@
package org.codelibs.fess;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.ByteBuffer;
+import java.util.logging.Level;
+import java.util.logging.LogManager;
+import java.util.logging.Logger;
+import java.util.regex.Pattern;
import org.dbflute.tomcat.TomcatBoot;
public class FessBoot extends TomcatBoot {
+ private static final Logger logger = Logger.getLogger(FessBoot.class.getPackage().getName());
+
+ private static final String LOGGING_PROPERTIES = "/logging.properties";
+
private static final String FESS_CONTEXT_PATH = "fess.context.path";
private static final String FESS_PORT = "fess.port";
@@ -18,6 +31,10 @@ public class FessBoot extends TomcatBoot {
private static final String JAVA_IO_TMPDIR = "java.io.tmpdir";
+ private static final int DEFAULT_BUF_SIZE = 4096;
+
+ private static final String UTF_8 = "UTF-8";
+
public FessBoot(int port, String contextPath) {
super(port, contextPath);
}
@@ -52,7 +69,7 @@ public class FessBoot extends TomcatBoot {
@Override
protected void info(String msg) {
- // TODO
+ logger.info(msg);
}
// ===================================================================================
@@ -60,6 +77,29 @@ public class FessBoot extends TomcatBoot {
// ============
public static void main(String[] args) {
+ try (InputStream is = FessBoot.class.getResourceAsStream(LOGGING_PROPERTIES)) {
+ if (is != null) {
+ try (ByteArrayOutputStream out = new ByteArrayOutputStream()) {
+ final ByteBuffer buffer = ByteBuffer.allocate(DEFAULT_BUF_SIZE);
+ final byte[] buf = buffer.array();
+ int len;
+ while ((len = is.read(buf)) != -1) {
+ out.write(buf, 0, len);
+ }
+
+ String configContent = out.toString(UTF_8);
+ final String fessHomeDir = System.getProperty("fess.home");
+ if (fessHomeDir != null) {
+ configContent = configContent.replaceAll(Pattern.quote("${fess.home}"), fessHomeDir);
+ }
+
+ LogManager.getLogManager().readConfiguration(new ByteArrayInputStream(configContent.getBytes(UTF_8)));
+ logger.info(LOGGING_PROPERTIES + " is loaded.");
+ }
+ }
+ } catch (IOException e) {
+ logger.log(Level.WARNING, "Failed to load " + LOGGING_PROPERTIES, e);
+ }
new FessBoot(getPort(), getContextPath()).useTldDetect().asDevelopment(isNoneEnv()).bootAwait();
}