
Author: ceki Date: Mon Nov 17 17:42:16 2008 New Revision: 1976 Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/DefaultCssBuilder.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/HTMLLayout.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullRequestConverter.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullResponseConverter.java logback/trunk/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultCssBuilder.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultThrowableRenderer.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/HTMLLayout.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/StatusListenerConfigHelper.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/HTMLLayoutTest.java logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/ThrowableToDataPointTest.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/Layout.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/WriterAppender.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/layout/EchoLayout.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/OptionHelper.java logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/helpers/ThrowableToStringArrayTest.java logback/trunk/logback-core/src/test/java/ch/qos/logback/core/layout/DummyLayout.java logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout.java logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout2.java Log: - Moved LINE_SEP constant from Layout to CoreConstants. - Absorb thrown SecurityException/AccessControlException when accessing system properties This fixes LBCLASSIC-86 Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/DefaultCssBuilder.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/DefaultCssBuilder.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/DefaultCssBuilder.java Mon Nov 17 17:42:16 2008 @@ -9,7 +9,7 @@ */ package ch.qos.logback.access.html; -import static ch.qos.logback.core.Layout.LINE_SEP; +import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR; import ch.qos.logback.core.html.CssBuilder; /** @@ -31,49 +31,49 @@ sbuf.append("margin-right: 2em; "); sbuf.append("border-left: 2px solid #AAA; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TR.even { "); sbuf.append("background: #FFFFFF; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TR.odd { "); sbuf.append("background: #EAEAEA; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TD {"); sbuf.append("padding-right: 1ex; "); sbuf.append("padding-left: 1ex; "); sbuf.append("border-right: 2px solid #AAA;"); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TD.Time, TD.Date { "); sbuf.append("text-align: right; "); sbuf.append("font-family: courier, monospace; "); sbuf.append("font-size: smaller; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("TD.RemoteHost, TD.RequestProtocol, TD.RequestHeader, TD.RequestURL, TD.RemoteUser, TD.RequestURI, TD.ServerName {"); sbuf.append("text-align: left; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("TD.RequestAttribute, TD.RequestCookie, TD.ResponseHeader, TD.RequestParameter {"); sbuf.append("text-align: left; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("TD.RemoteIPAddress, TD.LocalIPAddress, TD.ContentLength, TD.StatusCode, TD.LocalPort {"); sbuf.append("text-align: right; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TR.header { "); sbuf.append("background: #596ED5; "); sbuf.append("color: #FFF; "); sbuf.append("font-weight: bold; "); sbuf.append("font-size: larger; "); sbuf.append("}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("</style>"); } } \ No newline at end of file Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/HTMLLayout.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/HTMLLayout.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/html/HTMLLayout.java Mon Nov 17 17:42:16 2008 @@ -17,6 +17,7 @@ import ch.qos.logback.core.html.HTMLLayoutBase; import ch.qos.logback.core.html.NOPThrowableRenderer; import ch.qos.logback.core.pattern.Converter; +import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR; /** * @@ -64,14 +65,14 @@ odd = false; } - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); buf.append("<tr class=\""); if (odd) { buf.append(" odd\">"); } else { buf.append(" even\">"); } - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); Converter<AccessEvent> c = head; while (c != null) { @@ -79,7 +80,7 @@ c = c.getNext(); } buf.append("</tr>"); - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); return buf.toString(); } @@ -91,6 +92,6 @@ buf.append("\">"); buf.append(c.convert(event)); buf.append("</td>"); - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); } } Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/jetty/RequestLogImpl.java Mon Nov 17 17:42:16 2008 @@ -23,6 +23,7 @@ import ch.qos.logback.core.status.ErrorStatus; import ch.qos.logback.core.status.InfoStatus; import ch.qos.logback.core.status.WarnStatus; +import ch.qos.logback.core.util.OptionHelper; /** * This class is logback's implementation of jetty's RequestLog interface. @@ -139,7 +140,7 @@ public void start() { if (filename == null) { - String jettyHomeProperty = System.getProperty("jetty.home"); + String jettyHomeProperty = OptionHelper.getSystemProperty("jetty.home"); filename = jettyHomeProperty + File.separatorChar + DEFAULT_CONFIG_FILE; getStatusManager().add( Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullRequestConverter.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullRequestConverter.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullRequestConverter.java Mon Nov 17 17:42:16 2008 @@ -3,7 +3,7 @@ import java.util.Enumeration; import ch.qos.logback.access.spi.AccessEvent; -import ch.qos.logback.core.Layout; +import ch.qos.logback.core.CoreConstants; /** * This class is tied to the <code>fullRequest</code> conversion word. @@ -20,7 +20,7 @@ public String convert(AccessEvent ae) { StringBuffer buf = new StringBuffer(); buf.append(ae.getRequestURL()); - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); Enumeration headerNames = ae.getRequestHeaderNames(); while(headerNames.hasMoreElements()) { @@ -28,9 +28,9 @@ buf.append(name); buf.append(": "); buf.append(ae.getRequestHeader(name)); - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); } - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); buf.append(ae.getRequestContent()); return buf.toString(); } Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullResponseConverter.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullResponseConverter.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/pattern/FullResponseConverter.java Mon Nov 17 17:42:16 2008 @@ -3,7 +3,7 @@ import java.util.List; import ch.qos.logback.access.spi.AccessEvent; -import ch.qos.logback.core.Layout; +import ch.qos.logback.core.CoreConstants; public class FullResponseConverter extends AccessConverter { @@ -16,18 +16,18 @@ buf.append(statusCode); buf.append(" "); buf.append(getStatusCodeDescription(statusCode)); - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); List<String> hnList = ae.getResponseHeaderNameList(); for(String headerName: hnList) { buf.append(headerName); buf.append(": "); buf.append(ae.getResponseHeader(headerName)); - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); } - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); buf.append(ae.getResponseContent()); - buf.append(Layout.LINE_SEP); + buf.append(CoreConstants.LINE_SEPARATOR); return buf.toString(); } Modified: logback/trunk/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java ============================================================================== --- logback/trunk/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java (original) +++ logback/trunk/logback-access/src/main/java/ch/qos/logback/access/tomcat/LogbackValve.java Mon Nov 17 17:42:16 2008 @@ -30,24 +30,25 @@ import ch.qos.logback.core.status.InfoStatus; import ch.qos.logback.core.status.StatusManager; import ch.qos.logback.core.status.WarnStatus; +import ch.qos.logback.core.util.OptionHelper; import ch.qos.logback.core.util.StatusPrinter; /** * This class is an implementation of tomcat's Valve interface, by extending * ValveBase. * - * <p>For more information on using LogbackValve please refer to the online - * documentation on <a href="http://logback.qos.ch/access.html#tomcat">logback-acces and tomcat</a>. + * <p>For more information on using LogbackValve please refer to the online + * documentation on <a + * href="http://logback.qos.ch/access.html#tomcat">logback-acces and tomcat</a>. * - * <p>A special, module-specific implementation of PatternLayout was implemented to - * allow http-specific patterns to be used. The + * <p>A special, module-specific implementation of PatternLayout was + * implemented to allow http-specific patterns to be used. The * {@link ch.qos.logback.access.PatternLayout} provides a way to format the * logging output that is just as easy and flexible as the usual PatternLayout. * For more information about the general use of a PatternLayout, please refer * to logback classic's {@link ch.qos.logback.classic.PatternLayout}. For * information about logback access' specific PatternLayout, please refer to - * it's javadoc. - * <p> + * it's javadoc. <p> * * @author Ceki Gülcü * @author Sébastien Pennec @@ -79,7 +80,8 @@ public void start() { if (filename == null) { - String tomcatHomeProperty = System.getProperty("catalina.home"); + String tomcatHomeProperty = OptionHelper + .getSystemProperty("catalina.home"); filename = tomcatHomeProperty + File.separatorChar + DEFAULT_CONFIG_FILE; getStatusManager().add( @@ -101,7 +103,7 @@ new WarnStatus("[" + filename + "] does not exist", this)); } - if(!quiet) { + if (!quiet) { StatusPrinter.print(getStatusManager()); } @@ -113,9 +115,9 @@ } public void setFilename(String filename) { - this.filename = filename; + this.filename = filename; } - + public boolean isQuiet() { return quiet; } @@ -230,8 +232,6 @@ this.name = name; } - - // Methods from catalina Lifecycle public void addLifecycleListener(LifecycleListener arg0) { Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultCssBuilder.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultCssBuilder.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultCssBuilder.java Mon Nov 17 17:42:16 2008 @@ -1,7 +1,7 @@ /** - * Logback: the reliable, generic, fast and flexible logging framework. + * Logback: the generic, reliable, fast and flexible logging framework. * - * Copyright (C) 1999-2006, QOS.ch + * Copyright (C) 2000-2008, QOS.ch * * This library is free software, you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free @@ -9,7 +9,9 @@ */ package ch.qos.logback.classic.html; -import static ch.qos.logback.core.Layout.LINE_SEP; + +import ch.qos.logback.core.CoreConstants; +import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR; import ch.qos.logback.core.html.CssBuilder; /** @@ -26,47 +28,47 @@ public void addCss(StringBuilder sbuf) { sbuf.append("<style type=\"text/css\">"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("table { margin-left: 2em; margin-right: 2em; border-left: 2px solid #AAA; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TR.even { background: #FFFFFF; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TR.odd { background: #EAEAEA; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("TR.warn TD.Level, TR.error TD.Level, TR.fatal TD.Level {font-weight: bold; color: #FF4040 }"); - sbuf.append(LINE_SEP); + sbuf.append(CoreConstants.LINE_SEPARATOR); sbuf .append("TD { padding-right: 1ex; padding-left: 1ex; border-right: 2px solid #AAA; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("TD.Time, TD.Date { text-align: right; font-family: courier, monospace; font-size: smaller; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TD.Thread { text-align: left; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TD.Level { text-align: right; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("TD.Logger { text-align: left; }"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf .append("TR.header { background: #596ED5; color: #FFF; font-weight: bold; font-size: larger; }"); - sbuf.append(LINE_SEP); + sbuf.append(CoreConstants.LINE_SEPARATOR); sbuf .append("TD.Exception { background: #A2AEE8; font-family: courier, monospace;}"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("</style>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); } } Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultThrowableRenderer.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultThrowableRenderer.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/DefaultThrowableRenderer.java Mon Nov 17 17:42:16 2008 @@ -1,6 +1,6 @@ package ch.qos.logback.classic.html; -import static ch.qos.logback.core.Layout.LINE_SEP; +import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR; import ch.qos.logback.classic.helpers.Transform; import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.classic.spi.ThrowableDataPoint; @@ -29,11 +29,11 @@ } sbuf.append("<tr><td class=\"Exception\" colspan=\"6\">"); sbuf.append(Transform.escapeTags(tdpArray[0].toString())); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); for (int i = 1; i < len; i++) { sbuf.append(TRACE_PREFIX); sbuf.append(Transform.escapeTags(tdpArray[i].toString())); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); } sbuf.append("</td></tr>"); } Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/HTMLLayout.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/HTMLLayout.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/html/HTMLLayout.java Mon Nov 17 17:42:16 2008 @@ -17,6 +17,7 @@ import ch.qos.logback.classic.html.DefaultCssBuilder; import ch.qos.logback.core.html.HTMLLayoutBase; import ch.qos.logback.core.pattern.Converter; +import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR; /** * @@ -65,7 +66,7 @@ String level = event.getLevel().toString().toLowerCase(); - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); buf.append("<tr class=\""); buf.append(level); if (odd) { @@ -73,7 +74,7 @@ } else { buf.append(" even\">"); } - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); Converter<LoggingEvent> c = head; while (c != null) { @@ -81,7 +82,7 @@ c = c.getNext(); } buf.append("</tr>"); - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); if (event.getThrowableProxy() != null) { throwableRenderer.render(buf, event); @@ -96,6 +97,6 @@ buf.append("\">"); buf.append(c.convert(event)); buf.append("</td>"); - buf.append(LINE_SEP); + buf.append(LINE_SEPARATOR); } } Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/ContextInitializer.java Mon Nov 17 17:42:16 2008 @@ -11,6 +11,7 @@ import ch.qos.logback.core.status.InfoStatus; import ch.qos.logback.core.status.StatusManager; import ch.qos.logback.core.util.Loader; +import ch.qos.logback.core.util.OptionHelper; // contributors // Ted Graham, Matt Fowles, see also http://jira.qos.ch/browse/LBCORE-32 @@ -43,7 +44,7 @@ } private URL findConfigFileURLFromSystemProperties(boolean updateStatus) { - String logbackConfigFile = System.getProperty(CONFIG_FILE_PROPERTY, null); + String logbackConfigFile = OptionHelper.getSystemProperty(CONFIG_FILE_PROPERTY); if (logbackConfigFile != null) { URL result = null; try { Modified: logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/StatusListenerConfigHelper.java ============================================================================== --- logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/StatusListenerConfigHelper.java (original) +++ logback/trunk/logback-classic/src/main/java/ch/qos/logback/classic/util/StatusListenerConfigHelper.java Mon Nov 17 17:42:16 2008 @@ -8,8 +8,8 @@ public class StatusListenerConfigHelper { static void installIfAsked(LoggerContext loggerContext) { - String slClass = System.getProperty( - ContextInitializer.STATUS_LISTENER_CLASS, null); + String slClass = OptionHelper.getSystemProperty( + ContextInitializer.STATUS_LISTENER_CLASS); if (!OptionHelper.isEmpty(slClass)) { addStatusListener(loggerContext, slClass); } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/HTMLLayoutTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/HTMLLayoutTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/html/HTMLLayoutTest.java Mon Nov 17 17:42:16 2008 @@ -94,7 +94,7 @@ .getThrowableRenderer(); renderer.render(buf, strArray); // System.out.println(buf.toString()); - String[] result = buf.toString().split(HTMLLayout.LINE_SEP); + String[] result = buf.toString().split(CoreConstants.LINE_SEPARATOR); assertEquals("<tr><td class=\"Exception\" colspan=\"6\">test1", result[0]); assertEquals(DefaultThrowableRenderer.TRACE_PREFIX + "test2", result[1]); } Modified: logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/ThrowableToDataPointTest.java ============================================================================== --- logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/ThrowableToDataPointTest.java (original) +++ logback/trunk/logback-classic/src/test/java/ch/qos/logback/classic/spi/ThrowableToDataPointTest.java Mon Nov 17 17:42:16 2008 @@ -1,6 +1,6 @@ package ch.qos.logback.classic.spi; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.io.PrintWriter; import java.io.StringWriter; @@ -9,9 +9,7 @@ import org.junit.Before; import org.junit.Test; -import ch.qos.logback.classic.spi.ThrowableDataPoint; -import ch.qos.logback.classic.spi.ThrowableToDataPointArray; -import ch.qos.logback.core.Layout; +import ch.qos.logback.core.CoreConstants; public class ThrowableToDataPointTest { @@ -33,7 +31,7 @@ StringBuilder sb = new StringBuilder(); for (ThrowableDataPoint tdp : tdpArray) { sb.append(tdp.toString()); - sb.append(Layout.LINE_SEP); + sb.append(CoreConstants.LINE_SEPARATOR); } String expected = sw.toString(); String result = sb.toString().replace("common frames omitted", "more"); Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/Layout.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/Layout.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/Layout.java Mon Nov 17 17:42:16 2008 @@ -13,9 +13,6 @@ import ch.qos.logback.core.spi.LifeCycle; public interface Layout<E> extends ContextAware, LifeCycle { - // Note that the line.separator property can be looked up even by applets. - public static final String LINE_SEP = System.getProperty("line.separator"); - public static final int LINE_SEP_LEN = LINE_SEP.length(); /** * Transform an event (of type Object) and return it as a String after Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/WriterAppender.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/WriterAppender.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/WriterAppender.java Mon Nov 17 17:42:16 2008 @@ -204,7 +204,7 @@ appendIfNotNull(sb, layout.getFileHeader()); appendIfNotNull(sb, layout.getPresentationHeader()); if (sb.length() > 0) { - sb.append(Layout.LINE_SEP); + sb.append(CoreConstants.LINE_SEPARATOR); // If at least one of file header or presentation header were not // null, then append a line separator. // This should be useful in most cases and should not hurt. Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/html/HTMLLayoutBase.java Mon Nov 17 17:42:16 2008 @@ -3,6 +3,7 @@ import java.util.Map; import ch.qos.logback.core.CoreConstants; +import static ch.qos.logback.core.CoreConstants.LINE_SEPARATOR; import ch.qos.logback.core.LayoutBase; import ch.qos.logback.core.pattern.Converter; import ch.qos.logback.core.pattern.ConverterUtil; @@ -120,15 +121,15 @@ StringBuilder sbuf = new StringBuilder(); sbuf.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\""); sbuf.append(" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("<html>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append(" <head>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append(" <title>"); sbuf.append(title); sbuf.append("</title>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); cssBuilder.addCss(sbuf); // if (cssBuilder == null) { @@ -136,11 +137,11 @@ // } else { // cssBuilder.addExternalCSS(sbuf); // } - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append(" </head>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("<body>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); return sbuf.toString(); } @@ -148,14 +149,14 @@ public String getPresentationHeader() { StringBuilder sbuf = new StringBuilder(); sbuf.append("<hr/>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("<p>Log session start time "); sbuf.append(new java.util.Date()); sbuf.append("</p><p></p>"); - sbuf.append(LINE_SEP); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); + sbuf.append(LINE_SEPARATOR); sbuf.append("<table cellspacing=\"0\">"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); buildHeaderRowForTable(sbuf); @@ -167,7 +168,7 @@ Converter c = head; String name; sbuf.append("<tr class=\"header\">"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); while (c != null) { name = computeConverterName(c); if (name == null) { @@ -179,11 +180,11 @@ sbuf.append("\">"); sbuf.append(computeConverterName(c)); sbuf.append("</td>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); c = c.getNext(); } sbuf.append("</tr>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); } public String getPresentationFooter() { @@ -198,7 +199,7 @@ @Override public String getFileFooter() { StringBuilder sbuf = new StringBuilder(); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("</body></html>"); return sbuf.toString(); } @@ -207,10 +208,10 @@ if (this.counter >= CoreConstants.TABLE_ROW_LIMIT) { counter = 0; sbuf.append("</table>"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); sbuf.append("<p></p>"); sbuf.append("<table cellspacing=\"0\">"); - sbuf.append(LINE_SEP); + sbuf.append(LINE_SEPARATOR); buildHeaderRowForTable(sbuf); } } Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/layout/EchoLayout.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/layout/EchoLayout.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/layout/EchoLayout.java Mon Nov 17 17:42:16 2008 @@ -9,7 +9,7 @@ */ package ch.qos.logback.core.layout; -import ch.qos.logback.core.Layout; +import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.LayoutBase; /** @@ -20,7 +20,7 @@ public class EchoLayout<E> extends LayoutBase<E> { public String doLayout(E event) { - return event+Layout.LINE_SEP; + return event+CoreConstants.LINE_SEPARATOR; } } Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/net/SMTPAppenderBase.java Mon Nov 17 17:42:16 2008 @@ -30,6 +30,7 @@ import ch.qos.logback.core.Layout; import ch.qos.logback.core.boolex.EvaluationException; import ch.qos.logback.core.boolex.EventEvaluator; +import ch.qos.logback.core.util.OptionHelper; /** * An abstract class that provides support for sending events to an email @@ -83,7 +84,7 @@ * Start the appender */ public void start() { - Properties props = new Properties(System.getProperties()); + Properties props = new Properties(OptionHelper.getSystemProperties()); if (smtpHost != null) { props.put("mail.smtp.host", smtpHost); } Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/OptionHelper.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/OptionHelper.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/OptionHelper.java Mon Nov 17 17:42:16 2008 @@ -9,6 +9,9 @@ */ package ch.qos.logback.core.util; + +import java.util.Properties; + import ch.qos.logback.core.Context; import ch.qos.logback.core.CoreConstants; @@ -198,7 +201,7 @@ /** * Very similar to <code>System.getProperty</code> except that the - * {@link SecurityException} is hidden. + * {@link SecurityException} is absorbed. * * @param key * The key to search for. @@ -210,12 +213,41 @@ public static String getSystemProperty(String key, String def) { try { return System.getProperty(key, def); - } catch (Throwable e) { // MS-Java throws - // com.ms.security.SecurityExceptionEx + } catch (SecurityException e) { return def; } } + /** + * Very similar to <code>System.getProperty</code> except that the + * {@link SecurityException} is absorbed. + * + * @param key + * The key to search for. + + * @return the string value of the system property. + */ + public static String getSystemProperty(String key) { + try { + return System.getProperty(key); + } catch (SecurityException e) { + return null; + } + } + /** + * Very similar to {@link System#getProperties()} except that the + * {@link SecurityException} is absorbed. + * + * @return the system properties + */ + public static Properties getSystemProperties() { + try { + return System.getProperties(); + } catch (SecurityException e) { + return new Properties(); + } + } + static public String[] extractDefaultReplacement(String key) { String[] result = new String[2]; result[0] = key; Modified: logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java ============================================================================== --- logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java (original) +++ logback/trunk/logback-core/src/main/java/ch/qos/logback/core/util/StatusPrinter.java Mon Nov 17 17:42:16 2008 @@ -18,7 +18,6 @@ import ch.qos.logback.core.Context; import ch.qos.logback.core.CoreConstants; -import ch.qos.logback.core.Layout; import ch.qos.logback.core.helpers.ThrowableToStringArray; import ch.qos.logback.core.status.ErrorStatus; import ch.qos.logback.core.status.Status; @@ -132,7 +131,7 @@ String dateStr = simpleDateFormat.format(date); sb.append(dateStr).append(" "); } - sb.append(prefix).append(s).append(Layout.LINE_SEP); + sb.append(prefix).append(s).append(CoreConstants.LINE_SEPARATOR); if (s.getThrowable() != null) { appendThrowable(sb, s.getThrowable()); Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/appender/ConsoleAppenderTest.java Mon Nov 17 17:42:16 2008 @@ -18,10 +18,9 @@ import org.junit.Before; import org.junit.Test; - import ch.qos.logback.core.AppenderBase; import ch.qos.logback.core.ConsoleAppender; -import ch.qos.logback.core.Layout; +import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.layout.DummyLayout; import ch.qos.logback.core.layout.NopLayout; import ch.qos.logback.core.util.TeeOutputStream; @@ -83,7 +82,7 @@ ca.start(); ca.doAppend(new Object()); ca.stop(); - assertEquals("open"+Layout.LINE_SEP+DummyLayout.DUMMY, tee.toString()); + assertEquals("open"+CoreConstants.LINE_SEPARATOR+DummyLayout.DUMMY, tee.toString()); } @Test Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/helpers/ThrowableToStringArrayTest.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/helpers/ThrowableToStringArrayTest.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/helpers/ThrowableToStringArrayTest.java Mon Nov 17 17:42:16 2008 @@ -1,6 +1,6 @@ package ch.qos.logback.core.helpers; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import java.io.PrintWriter; import java.io.StringWriter; @@ -9,7 +9,7 @@ import org.junit.Before; import org.junit.Test; -import ch.qos.logback.core.Layout; +import ch.qos.logback.core.CoreConstants; public class ThrowableToStringArrayTest { @@ -31,7 +31,7 @@ StringBuilder sb = new StringBuilder(); for (String tdp : sa) { sb.append(tdp.toString()); - sb.append(Layout.LINE_SEP); + sb.append(CoreConstants.LINE_SEPARATOR); } String expected = sw.toString(); String result = sb.toString().replace("common frames omitted", "more"); Modified: logback/trunk/logback-core/src/test/java/ch/qos/logback/core/layout/DummyLayout.java ============================================================================== --- logback/trunk/logback-core/src/test/java/ch/qos/logback/core/layout/DummyLayout.java (original) +++ logback/trunk/logback-core/src/test/java/ch/qos/logback/core/layout/DummyLayout.java Mon Nov 17 17:42:16 2008 @@ -9,11 +9,12 @@ */ package ch.qos.logback.core.layout; +import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.LayoutBase; public class DummyLayout<E> extends LayoutBase<E> { - public static final String DUMMY = "dummy"+LINE_SEP; + public static final String DUMMY = "dummy"+CoreConstants.LINE_SEPARATOR; String val = DUMMY; public DummyLayout() { Modified: logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout.java ============================================================================== --- logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout.java (original) +++ logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout.java Mon Nov 17 17:42:16 2008 @@ -1,6 +1,7 @@ package chapter5; import ch.qos.logback.classic.spi.LoggingEvent; +import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.LayoutBase; public class MySampleLayout extends LayoutBase<LoggingEvent> { @@ -16,7 +17,7 @@ sbuf.append(event.getLoggerRemoteView().getName()); sbuf.append(" - "); sbuf.append(event.getFormattedMessage()); - sbuf.append(LINE_SEP); + sbuf.append(CoreConstants.LINE_SEPARATOR); return sbuf.toString(); } } \ No newline at end of file Modified: logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout2.java ============================================================================== --- logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout2.java (original) +++ logback/trunk/logback-examples/src/main/java/chapter5/MySampleLayout2.java Mon Nov 17 17:42:16 2008 @@ -1,6 +1,7 @@ package chapter5; import ch.qos.logback.classic.spi.LoggingEvent; +import ch.qos.logback.core.CoreConstants; import ch.qos.logback.core.LayoutBase; public class MySampleLayout2 extends LayoutBase<LoggingEvent> { @@ -34,7 +35,7 @@ sbuf.append(event.getLoggerRemoteView().getName()); sbuf.append(" - "); sbuf.append(event.getFormattedMessage()); - sbuf.append(LINE_SEP); + sbuf.append(CoreConstants.LINE_SEPARATOR); return sbuf.toString(); } } \ No newline at end of file