From b27793c8a2d0a9416a80d46c506e83e7585b3d8a Mon Sep 17 00:00:00 2001 From: Michael gasche Date: Fri, 8 Nov 2024 11:32:14 +0100 Subject: [PATCH] Changes: - Improvements/fixes log4j2 for all web-containers - Cleanup make-file --- cfg/web-jetty.xml | 4 -- cfg/weblogic.xml | 6 +++ .../3.1.2/autumo-beetroot-3.1.2.jar | Bin 495460 -> 495425 bytes make.sh | 18 ++++--- .../beetroot/AbstractBeetRootServlet.java | 47 ++++++++---------- 5 files changed, 39 insertions(+), 36 deletions(-) diff --git a/cfg/web-jetty.xml b/cfg/web-jetty.xml index f61d0e78..9b44651d 100644 --- a/cfg/web-jetty.xml +++ b/cfg/web-jetty.xml @@ -31,10 +31,6 @@ beetRootConfig beetroot.cfg - - servletContainer - jetty - debug 0 diff --git a/cfg/weblogic.xml b/cfg/weblogic.xml index 2e9e9879..e1d9a7ee 100644 --- a/cfg/weblogic.xml +++ b/cfg/weblogic.xml @@ -20,4 +20,10 @@ false + + + org.apache.logging.log4j.* + + + diff --git a/lib/repo/ch/autumo/beetroot/autumo-beetroot/3.1.2/autumo-beetroot-3.1.2.jar b/lib/repo/ch/autumo/beetroot/autumo-beetroot/3.1.2/autumo-beetroot-3.1.2.jar index c31a7cda5ed04b9a5d2fa40ae1c42c4caa324add..d5a8e6b632466fc294908ef681adc732f9b277e3 100644 GIT binary patch delta 9669 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 delta 9674 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 Z!2pH-^{+b5o|4>3&L-9=fnT;5{|5l7Xq*55 diff --git a/make.sh b/make.sh index 31d2b22f..a60abc22 100755 --- a/make.sh +++ b/make.sh @@ -3,7 +3,7 @@ ############################################################################### # # beetRoot product packager. -# Version: 4.7 +# Version: 4.8 # # Notes: # - @@ -11,7 +11,7 @@ #------------------------------------------------------------------------------ # # Copyright 2024 autumo GmbH -# Date: 02.07.2024 +# Date: 2024-11-08 # ############################################################################### @@ -20,6 +20,8 @@ # Vars VERSION=3.1.2 +SLF4J_SIMPLE_VERSION=1.7.36 +LOG4J_WEB_VERSION=2.24.1 @@ -350,12 +352,16 @@ HEX=`hexdump -vn16 -e'4/4 "%08x" 1 "\n"' /dev/urandom` sed -i '' 's/web_html_ref_pre_url_part=/web_html_ref_pre_url_part=beetroot/' beetroot.cfg jar --create --file "beetroot.war" * mv *.war ../ + rm -f logging.xml cd .. # -- 2. WebLogic cp ../cfg/weblogic.xml autumo-beetRoot-web-${VERSION}/WEB-INF/weblogic.xml - cp ../cfg/logging-web-weblogic.xml autumo-beetRoot-web-${VERSION}/logging.xml + cp ../cfg/web-weblogic.xml autumo-beetRoot-web-$VERSION/WEB-INF/web.xml + cp ../cfg/logging-web-weblogic.xml autumo-beetRoot-web-${VERSION}/WEB-INF/log4j2.xml + # Enrich logging implementation + (cd autumo-beetRoot-web-$VERSION/WEB-INF/lib && curl -LO https://repo1.maven.org/maven2/org/apache/logging/log4j/log4j-web/${LOG4J_WEB_VERSION}/log4j-web-${LOG4J_WEB_VERSION}.jar) # change port (used for email templates) sed -i '' 's/ws_port=.*/ws_port=7001/' autumo-beetRoot-web-${VERSION}/beetroot.cfg # Use Javax for mailing @@ -369,16 +375,16 @@ HEX=`hexdump -vn16 -e'4/4 "%08x" 1 "\n"' /dev/urandom` -x "*/.DS_Store" \ -x "*/__MACOSX" rm -fR beetroot/ + rm -f autumo-beetRoot-web-${VERSION}/WEB-INF/weblogic.xml + rm -f autumo-beetRoot-web-${VERSION}/WEB-INF/lib/log4j-web-*.jar # -- 3. Jetty - rm -f autumo-beetRoot-web-${VERSION}/WEB-INF/weblogic.xml cp ../cfg/web-jetty.xml autumo-beetRoot-web-$VERSION/WEB-INF/web.xml cp ../cfg/jetty-web.xml autumo-beetRoot-web-$VERSION/WEB-INF/jetty-web.xml # Replace logging implementation! - (cd autumo-beetRoot-web-$VERSION/WEB-INF/lib && curl -LO https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/1.7.36/slf4j-simple-1.7.36.jar) rm autumo-beetRoot-web-$VERSION/WEB-INF/lib/log4j-slf4j-impl-*.jar - rm -f autumo-beetRoot-web-$VERSION/logging.xml + (cd autumo-beetRoot-web-$VERSION/WEB-INF/lib && curl -LO https://repo1.maven.org/maven2/org/slf4j/slf4j-simple/${SLF4J_SIMPLE_VERSION}/slf4j-simple-${SLF4J_SIMPLE_VERSION}.jar) # no AUTO_SERVER=TRUE switch sed -i '' 's|db_url=jdbc:h2:.*|db_url=jdbc:h2:[WEB-CONTEXT-PATH]/db/h2/db/beetroot;IFEXISTS=TRUE|' autumo-beetRoot-web-${VERSION}/beetroot.cfg # Change back mailing implementation diff --git a/src/main/java/ch/autumo/beetroot/AbstractBeetRootServlet.java b/src/main/java/ch/autumo/beetroot/AbstractBeetRootServlet.java index 7e9ef464..39b9bd91 100644 --- a/src/main/java/ch/autumo/beetroot/AbstractBeetRootServlet.java +++ b/src/main/java/ch/autumo/beetroot/AbstractBeetRootServlet.java @@ -57,6 +57,7 @@ public void init(ServletConfig config) throws ServletException { final String configFilePath = config.getInitParameter("beetRootConfig"); final String beetRootServiceClass = config.getInitParameter("beetRootServiceClass"); + // 1. Read general config final BeetRootConfigurationManager configMan = BeetRootConfigurationManager.getInstance(); try { @@ -67,19 +68,21 @@ public void init(ServletConfig config) throws ServletException { } - // 2. Logging configuration - final String servletContainer = config.getInitParameter("servletContainer"); - if (servletContainer == null || !servletContainer.equals("jetty")) { - // Configure logging - final String logCfgFile = config.getInitParameter("beetRootLogConfig"); + final String logCfgFile = config.getInitParameter("beetRootLogConfig"); + if (logCfgFile != null && !logCfgFile.isEmpty()) { + // 2.1 Apache Tomcat. try { - // For environments such as WebLogic, it is important that a logging context has a unique name! LoggingFactory.getInstance().initialize(webAppRoot + logCfgFile, configMan.getServletName()); } catch (Exception ioex) { throw new ServletException("Logging configuration initialization failed !", ioex); } } + // logCfgFile = null -> + // 2.2 For WebLogic, log4j2-logging will be initialized + // by the log4j-web-jar and the listener defined in web.xml. + // 2.3 Jetty uses simpler logging that can be bridged with slf4j-simple. + // 3. DB connection manager try { @@ -93,8 +96,8 @@ public void init(ServletConfig config) throws ServletException { } - // Create the beetRoot server running in a passive server mode, - // basically only parsing and sending the body + // 4. Create the beetRoot server running in a passive server mode, + // basically only parsing and sending the body try { final Class clz = Class.forName(beetRootServiceClass); beetRootService = (BeetRootService) clz.getDeclaredConstructor().newInstance(); @@ -103,6 +106,7 @@ public void init(ServletConfig config) throws ServletException { throw new ServletException("Couldn't create beetroot service from class '"+beetRootServiceClass+"'!", e); } + /** Servlet's life-cycle doesn't allow this. // Finally load user sessions try { @@ -125,18 +129,15 @@ public void destroy() { } */ - // clear sessions from memory + // Clear sessions from memory sessions.clear(); // all we need to do here - - // free service resource, etc. + // Free service resource, etc. beetRootService.destroy(); - - // release database resources + // Release database resources BeetRootDatabaseManager.getInstance().release(); - - // no threads need to be stopped, no streams closed, - // servlet container does it all for us here., - // just call the standard servlet destroy-method + // No threads need to be stopped, no streams closed, + // servlet-container does it all for us here. + // Just call the standard servlet-destroy-method. super.destroy(); } @@ -157,23 +158,17 @@ protected BeetRootService getBeetRootService() { * @throws IOException IO Exception */ protected BeetRootHTTPSession findOrCreateHttpSession(HttpServletRequest request) throws IOException { - - // servlet container session ID + // Servlet-container session ID final String sessionID = request.getSession().getId(); - BeetRootHTTPSession session = null; if (sessions.containsKey(sessionID)) return sessions.get(sessionID); // found ! - - // Create a temp file manager that handles the uploads within nano mechanics + // Create a temporary file manager that handles the uploads within NANO-Httpd API final ITempFileManager tempFileManager = beetRootService.newTempFileManager(); - // If there isn't a session yet, create one and deliver the input stream to it for parsing the body session = new BeetRootHTTPSession(sessionID, tempFileManager, request.getInputStream()); - - // store it. + // Store it sessions.put(sessionID, session); - return session; }