initial commit
[java-logging.git] / RELEASE-NOTES.txt
1 <!--\r
2 \r
3  Licensed to the Apache Software Foundation (ASF) under one or more\r
4  contributor license agreements.  See the NOTICE file distributed with\r
5  this work for additional information regarding copyright ownership.\r
6  The ASF licenses this file to You under the Apache License, Version 2.0\r
7  (the "License"); you may not use this file except in compliance with\r
8  the License.  You may obtain a copy of the License at\r
9  \r
10       http://www.apache.org/licenses/LICENSE-2.0\r
11  \r
12  Unless required by applicable law or agreed to in writing, software\r
13  distributed under the License is distributed on an "AS IS" BASIS,\r
14  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
15  See the License for the specific language governing permissions and\r
16  limitations under the License.\r
17 \r
18 -->\r
19 \r
20 $Id: RELEASE-NOTES.txt 597240 2007-11-21 22:50:06Z dennisl $\r
21 \r
22                            Commons Logging Package\r
23                                 Version 1.1.1\r
24                                 Release Notes\r
25 \r
26 INTRODUCTION:\r
27 ============\r
28 \r
29 This release of Apache Commons Logging is a maintenance release, with just a\r
30 couple of fixes for using Commons Logging under restrictive security policies.\r
31 \r
32 All core classes were compiled with Maven using a 1.4.x JDK, with target set\r
33 to 1.1 and source set to 1.2. Commons Logging may work on some\r
34 augmented 1.1 series JREs but it is recommended that those wish to run\r
35 on 1.1 JREs download the source and create a custom implementation by\r
36 stripping out all the complex classloader management code.\r
37 \r
38 For further details, please see the Apache Commons Logging website:\r
39   http://commons.apache.org/logging/\r
40 \r
41 For the very latest news, hints, FAQs etc. please see the\r
42 Apache Commons Logging wiki site:\r
43   http://wiki.apache.org/commons/Logging\r
44 \r
45 Note that some containers (some versions of Apache Tomcat and JBoss in\r
46 particular) prevent webapps, ejbs, etc from overriding the commons-logging\r
47 implementation provided by the container. This means that bundling this\r
48 updated implementation with a deployed application may not have any effect.\r
49 See the commons-logging site and/or the wiki for more information.\r
50 \r
51 == New Features Since 1.1.0 ==\r
52 \r
53 None.\r
54 \r
55 == Incompatibilities ==\r
56 \r
57 The protected method LogFactory.getContextClassLoader has been reverted to pre-1.1\r
58 behaviour. In earlier releases, this method did not use an AccessController when\r
59 obtaining the context classloader. In version 1.1 it did. In this release, it has\r
60 reverted to not using an AccessController; any user-level code that needs to obtain\r
61 a context classloader should itself create an AccessController, and call the\r
62 LogFactory.getContextClassLoader method via the doPrivileged method. This fixes a\r
63 potential security issue, where untrusted code could get access to the context\r
64 classloader if a signed Commons Logging library was in the classpath.\r
65 \r
66 == Dependencies ==\r
67 \r
68 Commons Logging has no mandatory dependencies.\r
69 \r
70 Java 1.2 and later are supported. It may be possible to use this release with\r
71 java 1.1 but this has not been tested; the unit tests certainly don't run on\r
72 that version.\r
73 \r
74 == Distributed Jar Files ==\r
75 \r
76 File commons-logging-nn.jar is the one most people will want. It provides the\r
77 base implementation and adapters to a number of popular logging libraries.\r
78 \r
79 File commons-logging-adapters-nn.jar includes only the adapters to various\r
80 concrete logging libraries. When commons-logging-nn.jar or\r
81 commons-logging-api-nn.jar is deployed in a container classpath, then this\r
82 adapters-only jar file should be deployed in the webapp, not the complete Commons\r
83 Logging distribution. This ensures that the core Log/LogFactory classes are only\r
84 deployed via one classloader, thus avoiding "Log4JLogger does not implement Log"\r
85 and similar problems.\r
86 \r
87 File commons-logging-api-nn.jar provides minimal adapters to external logging\r
88 libraries, just the internally implemented SimpleLog and NoOpLog classes\r
89 plus Jdk14Logger (which is currently required by Apache Tomcat).\r
90 \r
91 The file commons-logging-api-nn.jar may be used as a declared dependency for\r
92 projects that care about "transitive dependencies" and can't handle jar files\r
93 such as commons-logging-nn.jar which have "optional" dependencies depending on\r
94 how they are used. In addition, this jar file can be useful for "rebundlers" of\r
95 Commons Logging who recompile the source-code but who may not be able to\r
96 recompile against the full set of supported adapters; such projects should be\r
97 able to at least recreate an equivalent of this jar file.\r
98 \r
99 == General Notes ==\r
100 \r
101 The Apache Commons project has migrated to the Subversion version control system\r
102 (previously, CVS was used). There should be no effect on users of the Commons\r
103 Logging library, but obviously the process of examining the latest source code,\r
104 and of creating patches for Commons Logging has now changed. Please see the\r
105 Apache Commons website for details (http://commons.apache.org/).\r
106 \r
107 The Apache Commons project has now moved to using the Apache JIRA installation\r
108 as its bugtracking system (formerly, the Apache Bugzilla installation was used).\r
109 \r
110 All source files for this release have been updated to reflect the new Apache\r
111 Software Foundation licensing rules. The terms and conditions are unaltered;\r
112 this merely affects how those are presented in the source files. See\r
113   http://www.apache.org/legal/src-headers.html\r
114 \r
115 This release can be built/tested with Maven 2.0.x as well as Ant. Note that\r
116 building with Maven 1.x is no longer supported. The files used to build Commons\r
117 Logging with Maven 1.x will be removed in a future version of Commons Logging.\r
118 \r
119 == Bugs Fixed ==\r
120 \r
121 * LOGGING-106: Commons Logging 1.1 was completely unusable under a security\r
122   policy that prevented access to system properties. Even signing/authorising\r
123   the Commons Logging library was not sufficient. This has been fixed by (a)\r
124   catching SecurityException and falling back to a sensible default, and (b)\r
125   using AccessController so Commons Logging can be granted privileges without\r
126   needing the caller to have them too.\r
127 \r
128 * LOGGING-107: Commons Logging 1.1 auto-discovery failed under a security\r
129   policy that prevented calls to ClassLoader.getParent. Signing/authorising the\r
130   Commons Logging library was not sufficient as an AccessController was not used.\r
131   This has been fixed by catching SecurityException and using an AccessController.\r
132 \r
133 * LOGGING-111, LOGGING-114: Show the contents of chained exceptions, to make\r
134   debugging easier, in particular when using Commons Logging together with Log4J.\r
135 \r
136 * LOGGING-113: pom.xml in maven repository does not list dependencies as optional.\r
137 \r
138 * LOGGING-115: NPE thrown due to exception message logging.\r
139 \r
140 * LOGGING-117: Unit tests fail on linux with java16.\r
141 \r
142 * LOGGING-118: Generate source and binary archives.\r
143 \r
144 * MEV-392 (http://jira.codehaus.org/browse/MEV-392)\r
145   As Commons Logging didn't provide a Maven2 pom.xml file, one was helpfully\r
146   created by people not involved with the commons-logging project and published\r
147   to the standard maven repositories. Unfortunately this pom declared normal\r
148   dependencies on all the logging libraries that are supported by the core\r
149   Commons Logging distribution, meaning they all get pulled into a project that\r
150   declares a dependency on Commons Logging 1.1. This release now provides an\r
151   "official" pom.xml which declares these dependencies as optional so they aren't\r
152   automatically included in projects that depend on Commons Logging 1.1.1.\r
153 \r
154 * (no bug#): Fix thread-safety bug (SimpleDateFormat.format is not thread-safe).\r
155   Thanks to Martin Wilson of bright-interactive for the bug report.\r
156 \r
157 * (no bug#): Security issue regarding access to context classloader (see\r
158   incompatibilities section above).\r
159 \r
160 DEPRECATIONS:\r
161 ============\r
162 \r
163     (These are carried forward from Version 1.0.4)\r
164 \r
165 [LogSource]        Previously deprecated, replaced by LogFactory.\r
166 \r