diff --git a/src/main/assemblies/files/fess b/src/main/assemblies/files/fess index e55a37491..e42133a38 100644 --- a/src/main/assemblies/files/fess +++ b/src/main/assemblies/files/fess @@ -106,10 +106,10 @@ launch_service() if [ "x$daemonized" = "x" ]; then fess_parms="$fess_parms -Dfess.foreground=yes" - exec "$JAVA" $JAVA_OPTS $FESS_JAVA_OPTS $fess_parms -Dfess.es.dir="$ES_HOME" -cp "$FESS_CLASSPATH" $props \ + exec "$JAVA" $FESS_JAVA_OPTS $fess_parms -Dfess.es.dir="$ES_HOME" -cp "$FESS_CLASSPATH" $props \ org.codelibs.fess.FessBoot $FESS_OPTS > /dev/null else - exec "$JAVA" $JAVA_OPTS $FESS_JAVA_OPTS $fess_parms -Dfess.es.dir="$ES_HOME" -cp "$FESS_CLASSPATH" $props \ + exec "$JAVA" $FESS_JAVA_OPTS $fess_parms -Dfess.es.dir="$ES_HOME" -cp "$FESS_CLASSPATH" $props \ org.codelibs.fess.FessBoot $FESS_OPTS <&- > /dev/null & if [ x"$pidfile" != "x" ] ; then echo $! > $pidfile @@ -162,7 +162,7 @@ eval set -- "$args" while true; do case $1 in -v) - "$JAVA" $JAVA_OPTS $FESS_JAVA_OPTS $fess_parms -cp "$FESS_CLASSPATH" $props \ + "$JAVA" $FESS_JAVA_OPTS $fess_parms -cp "$FESS_CLASSPATH" $props \ org.codelibs.fess.Version exit 0 ;; diff --git a/src/main/assemblies/files/fess.bat b/src/main/assemblies/files/fess.bat index 17ce135a4..edb84ac4c 100644 --- a/src/main/assemblies/files/fess.bat +++ b/src/main/assemblies/files/fess.bat @@ -43,6 +43,6 @@ IF ERRORLEVEL 1 ( EXIT /B %ERRORLEVEL% ) -"%JAVA_HOME%\bin\java" %JAVA_OPTS% %FESS_JAVA_OPTS% !newparams! -cp "%FESS_CLASSPATH%" "org.codelibs.fess.FessBoot" +"%JAVA_HOME%\bin\java" %FESS_JAVA_OPTS% !newparams! -cp "%FESS_CLASSPATH%" "org.codelibs.fess.FessBoot" ENDLOCAL diff --git a/src/main/assemblies/files/fess.in.bat b/src/main/assemblies/files/fess.in.bat index 59a398909..f1e292e63 100644 --- a/src/main/assemblies/files/fess.in.bat +++ b/src/main/assemblies/files/fess.in.bat @@ -30,70 +30,70 @@ REM min and max heap sizes should be set to the same value to avoid REM stop-the-world GC pauses during resize, and so that we can lock the REM heap in memory on startup to prevent any of it from being swapped REM out. -set JAVA_OPTS=%JAVA_OPTS% -Xms%FESS_MIN_MEM% -Xmx%FESS_MAX_MEM% -set JAVA_OPTS=%JAVA_OPTS% -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=32m +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Xms%FESS_MIN_MEM% -Xmx%FESS_MAX_MEM% +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=32m REM new generation if NOT "%FESS_HEAP_NEWSIZE%" == "" ( -set JAVA_OPTS=%JAVA_OPTS% -Xmn%FESS_HEAP_NEWSIZE% +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Xmn%FESS_HEAP_NEWSIZE% ) REM max direct memory if NOT "%FESS_DIRECT_SIZE%" == "" ( -set JAVA_OPTS=%JAVA_OPTS% -XX:MaxDirectMemorySize=%FESS_DIRECT_SIZE% +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:MaxDirectMemorySize=%FESS_DIRECT_SIZE% ) REM set to headless, just in case -set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djava.awt.headless=true REM maximum # keep-alive connections to maintain at once -set JAVA_OPTS=%JAVA_OPTS% -Dhttp.maxConnections=20 +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dhttp.maxConnections=20 REM Force the JVM to use IPv4 stack if NOT "%FESS_USE_IPV4%" == "" ( -set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djava.net.preferIPv4Stack=true ) -set JAVA_OPTS=%JAVA_OPTS% -Djna.nosys=true -set JAVA_OPTS=%JAVA_OPTS% -Djdk.io.permissionsUseCanonicalPath=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djna.nosys=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djdk.io.permissionsUseCanonicalPath=true -set JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC -set JAVA_OPTS=%JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=75 +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+UseG1GC +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:InitiatingHeapOccupancyPercent=75 -set JAVA_OPTS=%JAVA_OPTS% -Dio.netty.noUnsafe=true -set JAVA_OPTS=%JAVA_OPTS% -Dio.netty.noKeySetOptimization=true -set JAVA_OPTS=%JAVA_OPTS% -Dio.netty.recycler.maxCapacityPerThread=0 +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dio.netty.noUnsafe=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dio.netty.noKeySetOptimization=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dio.netty.recycler.maxCapacityPerThread=0 -set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.shutdownHookEnabled=false -set JAVA_OPTS=%JAVA_OPTS% -Dlog4j2.disable.jmx=true -set JAVA_OPTS=%JAVA_OPTS% -Dlog4j.skipJansi=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j.shutdownHookEnabled=false +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j2.disable.jmx=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dlog4j.skipJansi=true REM SSL truststore for certificate validation over https -REM JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStore=/tech/elastic/config/truststore.jks -REM JAVA_OPTS=%JAVA_OPTS% -Djavax.net.ssl.trustStorePassword=changeit +REM FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djavax.net.ssl.trustStore=/tech/elastic/config/truststore.jks +REM FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Djavax.net.ssl.trustStorePassword=changeit -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDetails -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCTimeStamps -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCDateStamps -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintClassHistogram -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintTenuringDistribution -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime -if NOT "%FESS_USE_GC_LOGGING%" == "" set JAVA_OPTS=%JAVA_OPTS% -Xloggc:%FESS_HOME%/logs/gc.log +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+PrintGCDetails +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+PrintGCTimeStamps +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+PrintGCDateStamps +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+PrintClassHistogram +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+PrintTenuringDistribution +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+PrintGCApplicationStoppedTime +if NOT "%FESS_USE_GC_LOGGING%" == "" set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Xloggc:%FESS_HOME%/logs/gc.log REM Causes the JVM to dump its heap on OutOfMemory. -REM set JAVA_OPTS=%JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError +REM set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+HeapDumpOnOutOfMemoryError REM The path to the heap dump location, note directory must exists and have enough REM space for a full heap dump. -REM JAVA_OPTS=%JAVA_OPTS% -XX:HeapDumpPath=%FESS_HOME%/logs/heapdump.hprof +REM FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:HeapDumpPath=%FESS_HOME%/logs/heapdump.hprof REM Disables explicit GC -set JAVA_OPTS=%JAVA_OPTS% -XX:+DisableExplicitGC +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -XX:+DisableExplicitGC REM Ensure UTF-8 encoding by default (e.g. filenames) -set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8 +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dfile.encoding=UTF-8 REM Use Groovy ClassValue -set JAVA_OPTS=%JAVA_OPTS% -Dgroovy.use.classvalue=true +set FESS_JAVA_OPTS=%FESS_JAVA_OPTS% -Dgroovy.use.classvalue=true REM Application Configuration set APP_NAME=fess diff --git a/src/main/assemblies/files/fess.in.sh b/src/main/assemblies/files/fess.in.sh index 4dd338c38..3958b0737 100755 --- a/src/main/assemblies/files/fess.in.sh +++ b/src/main/assemblies/files/fess.in.sh @@ -2,6 +2,13 @@ FESS_CLASSPATH=$FESS_HOME/lib/classes +# JAVA_OPTS is not a built-in JVM mechanism but some people think it is so we +# warn them that we are not observing the value of $JAVA_OPTS +if [ ! -z "$JAVA_OPTS" ]; then + echo -n "warning: ignoring JAVA_OPTS=$JAVA_OPTS; " + echo "pass JVM parameters via FESS_JAVA_OPTS" +fi + if [ "x$FESS_MIN_MEM" = "x" ]; then FESS_MIN_MEM=256m fi @@ -18,72 +25,72 @@ fi #FESS_DICTIONARY_PATH=/var/lib/elasticsearch/config/ # SSL truststore for certificate validation over https -#JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStore=/tech/elastic/config/truststore.jks" -#JAVA_OPTS="$JAVA_OPTS -Djavax.net.ssl.trustStorePassword=changeit" +#FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Djavax.net.ssl.trustStore=/tech/elastic/config/truststore.jks" +#FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Djavax.net.ssl.trustStorePassword=changeit" # min and max heap sizes should be set to the same value to avoid # stop-the-world GC pauses during resize, and so that we can lock the # heap in memory on startup to prevent any of it from being swapped # out. -JAVA_OPTS="$JAVA_OPTS -Xms${FESS_MIN_MEM}" -JAVA_OPTS="$JAVA_OPTS -Xmx${FESS_MAX_MEM}" -JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=32m" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Xms${FESS_MIN_MEM}" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Xmx${FESS_MAX_MEM}" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:MaxMetaspaceSize=256m -XX:CompressedClassSpaceSize=32m" # new generation if [ "x$FESS_HEAP_NEWSIZE" != "x" ]; then - JAVA_OPTS="$JAVA_OPTS -Xmn${FESS_HEAP_NEWSIZE}" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Xmn${FESS_HEAP_NEWSIZE}" fi # set to headless, just in case -JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Djava.awt.headless=true" # maximum # keep-alive connections to maintain at once -JAVA_OPTS="$JAVA_OPTS -Dhttp.maxConnections=20" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dhttp.maxConnections=20" # Force the JVM to use IPv4 stack if [ "x$FESS_USE_IPV4" != "x" ]; then - JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Djava.net.preferIPv4Stack=true" fi -JAVA_OPTS="$JAVA_OPTS -Djna.nosys=true" -JAVA_OPTS="$JAVA_OPTS -Djdk.io.permissionsUseCanonicalPath=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Djna.nosys=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Djdk.io.permissionsUseCanonicalPath=true" -JAVA_OPTS="$JAVA_OPTS -XX:+UseG1GC" -JAVA_OPTS="$JAVA_OPTS -XX:InitiatingHeapOccupancyPercent=75" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+UseG1GC" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:InitiatingHeapOccupancyPercent=75" -JAVA_OPTS="$JAVA_OPTS -Dio.netty.noUnsafe=true" -JAVA_OPTS="$JAVA_OPTS -Dio.netty.noKeySetOptimization=true" -JAVA_OPTS="$JAVA_OPTS -Dio.netty.recycler.maxCapacityPerThread=0" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dio.netty.noUnsafe=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dio.netty.noKeySetOptimization=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dio.netty.recycler.maxCapacityPerThread=0" -JAVA_OPTS="$JAVA_OPTS -Dlog4j.shutdownHookEnabled=false" -JAVA_OPTS="$JAVA_OPTS -Dlog4j2.disable.jmx=true" -JAVA_OPTS="$JAVA_OPTS -Dlog4j.skipJansi=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dlog4j.shutdownHookEnabled=false" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dlog4j2.disable.jmx=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dlog4j.skipJansi=true" # GC logging options if [ "x$FESS_USE_GC_LOGGING" != "x" ]; then - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCTimeStamps" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDateStamps" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintClassHistogram" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintTenuringDistribution" - JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCApplicationStoppedTime" - JAVA_OPTS="$JAVA_OPTS -Xloggc:/var/log/elasticsearch/gc.log" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+PrintGCDetails" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+PrintGCTimeStamps" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+PrintGCDateStamps" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+PrintClassHistogram" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+PrintTenuringDistribution" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+PrintGCApplicationStoppedTime" + FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Xloggc:/var/log/elasticsearch/gc.log" fi # Causes the JVM to dump its heap on OutOfMemory. -#JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError" +#FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError" # The path to the heap dump location, note directory must exists and have enough # space for a full heap dump. -#JAVA_OPTS="$JAVA_OPTS -XX:HeapDumpPath=$FESS_HOME/logs/heapdump.hprof" +#FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:HeapDumpPath=$FESS_HOME/logs/heapdump.hprof" # Disables explicit GC -JAVA_OPTS="$JAVA_OPTS -XX:+DisableExplicitGC" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -XX:+DisableExplicitGC" # Ensure UTF-8 encoding by default (e.g. filenames) -JAVA_OPTS="$JAVA_OPTS -Dfile.encoding=UTF-8" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dfile.encoding=UTF-8" # Use Groovy ClassValue -JAVA_OPTS="$JAVA_OPTS -Dgroovy.use.classvalue=true" +FESS_JAVA_OPTS="$FESS_JAVA_OPTS -Dgroovy.use.classvalue=true" # Application Configuration if [ "x$APP_NAME" = "x" ]; then