bonampak commented on code in PR #1181:
URL: https://github.com/apache/knox/pull/1181#discussion_r3674453022


##########
gateway-shell-release/home/bin/knoxshell.sh:
##########
@@ -81,7 +81,7 @@ function main {
 
    checkJava
    buildAppJavaOpts
-   $JAVA "${APP_JAVA_OPTS[@]}" 
-Dlog4j.configurationFile=conf/knoxshell-log4j2.xml 
-javaagent:"$APP_BIN_DIR"/../lib/aspectjweaver.jar -cp "$APP_JAR":lib/* 
org.apache.knox.gateway.shell.Shell "$@" || exit 1
+   $JAVA "${APP_JAVA_OPTS[@]}" 
-Dlog4j.configurationFile=conf/knoxshell-log4j2.xml 
-javaagent:"$APP_BIN_DIR"/../lib/aspectjweaver.jar -cp "$APP_JAR":lib/* -cp 
"$APP_JAR":lib/* org.apache.knox.gateway.launcher.Launcher "$@" || exit 1

Review Comment:
   I kept Launcher and removed the duplicate classpath option.
   
   It's because our logging configuration is referring to sys:launcher.dir and 
sys:launcher.name.
   The shaded jar is also using Launcher as main class.
   
   Either we specify these properties in the launcher script or we use 
Launcher. 
   
   Otherwise the log file will not be created: 
   
   `./bin/knoxshell.sh -e 
"org.apache.logging.log4j.LogManager.getLogger('test').error('hello from 
knoxshell')"`
   
   ``
   main ERROR Unable to create file 
${sys:launcher.dir}/../logs/${sys:launcher.name}.log
   java.io.IOException: No such file or directory
        at java.base/java.io.UnixFileSystem.createFileExclusively(Native Method)
        at java.base/java.io.File.createNewFile(File.java:1043)
        at 
org.apache.logging.log4j.core.appender.rolling.RollingFileManager.lambda$getFileManager$0(RollingFileManager.java:315)
   ``
   
   There are currently classloader issues if we would use -jar and we place 
extra jars, for example database driver jars in the lib folder. So the -cp flag 
is needed in that case and -jar cannot be used (the shaded jar does not specify 
a classpath in its manifest). I'll create a separate issue to use launcher and 
be consistent with other modules.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to