Re: [slf4j-dev] 1.5.4?

2008-11-15 Thread Ceki Gulcu

Hello Thorbjørn,

Thorbjørn Ravn Andersen wrote:
 
 What is your current estimate for the 1.5.6 release?

I would like to get logback 0.9.12 out the door first. SLF4J 1.5.6 will come 
later, probably in December.

 /Thorbjørn
 

-- 
Ceki Gülcü
Logback: The reliable, generic, fast and flexible logging framework for Java.
http://logback.qos.ch
___
dev mailing list
dev@slf4j.org
http://www.slf4j.org/mailman/listinfo/dev

[slf4j-dev] svn commit: r1235 - slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation

2008-11-15 Thread ravn
Author: ravn
Date: Sat Nov 15 16:05:39 2008
New Revision: 1235

Modified:
   
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/LogTransformer.java

Log:
Now uses domain classloader to see if slf4j is available, and only instruments 
if so.
This allows to shorten the ignore path to just the slf4j classes.


Modified: 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/LogTransformer.java
==
--- 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/LogTransformer.java
   (original)
+++ 
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/instrumentation/LogTransformer.java
   Sat Nov 15 16:05:39 2008
@@ -34,7 +34,8 @@
* Builder provides a flexible way of configuring some of many options on the
* parent class instead of providing many constructors.
* 
-   * [EMAIL PROTECTED] 
http://rwhansen.blogspot.com/2007/07/theres-builder-pattern-that-joshua.html}
+   * [EMAIL PROTECTED] http
+   * ://rwhansen.blogspot.com/2007/07/theres-builder-pattern-that-joshua.html}
* 
*/
   public static class Builder {
@@ -69,11 +70,11 @@
 
 boolean addVariableAssignment;
 
-//private Builder addVariableAssignment(boolean b) {
-//  System.err.println(cannot currently log variable assignments.);
-//  addVariableAssignment = b;
-//  return this;
-//}
+// private Builder addVariableAssignment(boolean b) {
+// System.err.println(cannot currently log variable assignments.);
+// addVariableAssignment = b;
+// return this;
+// }
 
 boolean verbose;
 
@@ -89,8 +90,7 @@
   return this;
 }
 
-String[] ignore = { sun/, java/, javax/, org/slf4j/,
-ch/qos/logback/, org/apache/log4j/, apple/, com/sun/ };
+String[] ignore = {org/slf4j/};
 
 public Builder ignore(String[] strings) {
   this.ignore = strings;
@@ -125,9 +125,9 @@
 } catch (ClassNotFoundException e) {
   System.err.println(s);
 }
-
+
 this.addEntryExit = builder.addEntryExit;
-//this.addVariableAssignment = builder.addVariableAssignment;
+// this.addVariableAssignment = builder.addVariableAssignment;
 this.verbose = builder.verbose;
 this.ignore = builder.ignore;
 this.level = builder.level;
@@ -136,7 +136,7 @@
   }
 
   private boolean addEntryExit;
-//  private boolean addVariableAssignment;
+  // private boolean addVariableAssignment;
   private boolean verbose;
   private String[] ignore;
 
@@ -144,7 +144,7 @@
   ProtectionDomain domain, byte[] bytes) {
 
 try {
-  return transform0(className, clazz, bytes);
+  return transform0(className, clazz, domain, bytes);
 } catch (Exception e) {
   System.err.println(Could not instrument  + className);
   e.printStackTrace();
@@ -159,19 +159,46 @@
* 
* @param className
* @param clazz
+   * @param domain
* @param bytes
* @return
*/
-  private byte[] transform0(String className, Class? clazz, byte[] bytes) {
-for (int i = 0; i  ignore.length; i++) {
-  if (className.startsWith(ignore[i])) {
+
+  private byte[] transform0(String className, Class? clazz,
+  ProtectionDomain domain, byte[] bytes) {
+
+try {
+  for (int i = 0; i  ignore.length; i++) {
+if (className.startsWith(ignore[i])) {
+  return bytes;
+}
+  }
+  String slf4jName = org.slf4j.LoggerFactory;
+  try {
+if (domain != null  domain.getClassLoader() != null) {
+  domain.getClassLoader().loadClass(slf4jName);
+} else {
+  if (verbose) {
+System.err.println(Skipping  + className
++  as it doesn't have a domain or a class loader.);
+  }
+  return bytes;
+}
+  } catch (ClassNotFoundException e) {
+if (verbose) {
+  System.err.println(Skipping  + className
+  +  as slf4j is not available to it);
+}
 return bytes;
   }
+  if (verbose) {
+System.err.println(Processing  + className);
+  }
+  return doClass(className, clazz, bytes);
+} catch (Throwable e) {
+  System.out.println(e =  + e);
+  return bytes;
 }
-if (verbose) {
-  System.err.println(Processing  + className);
-}
-return doClass(className, clazz, bytes);
   }
 
   private String loggerName;
@@ -197,15 +224,15 @@
   if (cl.isInterface() == false) {
 
 loggerName = _log;
-
+
 // We have to declare the log variable.
-
+
 String pattern1 = private static org.slf4j.Logger {};;
 String loggerDefinition = format(pattern1, loggerName);
 CtField field = CtField.make(loggerDefinition, cl);
 
 // and assign it the appropriate value.
-
+
 String pattern2 = org.slf4j.LoggerFactory.getLogger({}.class);;
 String replace = name.replace('/', '.');
 String getLogger = format(pattern2, replace);
@@ -214,7 +241,7 

[slf4j-dev] svn commit: r1236 - in slf4j/trunk: slf4j-ext slf4j-ext/src/main/java/org/slf4j/ext slf4j-ext/src/test/java/org/slf4j/dummyExt slf4j-site/src/site/pages

2008-11-15 Thread rgoers
Author: rgoers
Date: Sat Nov 15 23:10:29 2008
New Revision: 1236

Added:
   slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/MDCStrLookup.java
   slf4j/trunk/slf4j-ext/src/test/java/org/slf4j/dummyExt/MDCStrLookupTest.java
   slf4j/trunk/slf4j-ext/src/test/java/org/slf4j/dummyExt/PackageTest.java
Modified:
   slf4j/trunk/slf4j-ext/pom.xml
   slf4j/trunk/slf4j-site/src/site/pages/extensions.html

Log:
Add MDCStrLookup and corresponding test


Modified: slf4j/trunk/slf4j-ext/pom.xml
==
--- slf4j/trunk/slf4j-ext/pom.xml   (original)
+++ slf4j/trunk/slf4j-ext/pom.xml   Sat Nov 15 23:10:29 2008
@@ -34,6 +34,12 @@
   artifactIdjavassist/artifactId
   version3.4.GA/version
 /dependency
+dependency
+  groupIdcommons-lang/groupId
+  artifactIdcommons-lang/artifactId
+  version2.4/version
+  optionaltrue/optional
+/dependency
   /dependencies
 
   build

Added: slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/MDCStrLookup.java
==
--- (empty file)
+++ slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/MDCStrLookup.java Sat Nov 
15 23:10:29 2008
@@ -0,0 +1,49 @@
+/*
+ * Copyright (c) 2004-2007 QOS.ch
+ * All rights reserved.
+ *
+ * Permission is hereby granted, free  of charge, to any person obtaining
+ * a  copy  of this  software  and  associated  documentation files  (the
+ * Software), to  deal in  the Software without  restriction, including
+ * without limitation  the rights to  use, copy, modify,  merge, publish,
+ * distribute,  sublicense, and/or sell  copies of  the Software,  and to
+ * permit persons to whom the Software  is furnished to do so, subject to
+ * the following conditions:
+ *
+ * The  above  copyright  notice  and  this permission  notice  shall  be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE  SOFTWARE IS  PROVIDED  AS  IS, WITHOUT  WARRANTY  OF ANY  KIND,
+ * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+ * MERCHANTABILITY,FITNESSFORA   PARTICULARPURPOSEAND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+ * OF CONTRACT, TORT OR OTHERWISE,  ARISING FROM, OUT OF OR IN CONNECTION
+ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+package org.slf4j.ext;
+
+import org.apache.commons.lang.text.StrLookup;
+import org.slf4j.MDC;
+
+
+/**
+ * This class can be used with the Commons Lang StrSubstitutor to replace
+ * tokens that occur in Strings with their values in the MDC.
+ *
+ * @author Ralph Goers
+ */
+public class MDCStrLookup extends StrLookup {
+/**
+ * Looks up up a value in the MDC.
+ *
+ * @param key the key to be looked up, may be null
+ * @return the matching value, null if no match
+ */
+public String lookup(String key) {
+if (key == null) {
+return null;
+}
+return MDC.get(key);
+}
+}

Added: 
slf4j/trunk/slf4j-ext/src/test/java/org/slf4j/dummyExt/MDCStrLookupTest.java
==
--- (empty file)
+++ 
slf4j/trunk/slf4j-ext/src/test/java/org/slf4j/dummyExt/MDCStrLookupTest.java
Sat Nov 15 23:10:29 2008
@@ -0,0 +1,33 @@
+package org.slf4j.dummyExt;
+
+import junit.framework.TestCase;
+
+import org.slf4j.MDC;
+import org.slf4j.ext.MDCStrLookup;
+
+public class MDCStrLookupTest extends TestCase {
+
+
+public MDCStrLookupTest(String name) {
+super(name);
+}
+
+public void setUp() throws Exception {
+super.setUp();
+}
+
+public void tearDown() throws Exception {
+super.tearDown();
+}
+
+public void testLookup() throws Exception {
+MDC.put(key, value);
+MDC.put(number, 2);
+MDCStrLookup lookup = new MDCStrLookup();
+assertEquals(value, lookup.lookup(key));
+assertEquals(2, lookup.lookup(number));
+assertEquals(null, lookup.lookup(null));
+assertEquals(null, lookup.lookup());
+assertEquals(null, lookup.lookup(other));
+}
+}

Added: slf4j/trunk/slf4j-ext/src/test/java/org/slf4j/dummyExt/PackageTest.java
==
--- (empty file)
+++ slf4j/trunk/slf4j-ext/src/test/java/org/slf4j/dummyExt/PackageTest.java 
Sat Nov 15 23:10:29 2008
@@ -0,0 +1,13 @@
+package org.slf4j.dummyExt;
+
+import junit.framework.*;
+
+public class PackageTest extends TestCase {
+
+  public static Test suite() {
+TestSuite suite = new TestSuite();
+suite.addTestSuite(MDCStrLookupTest.class);
+suite.addTestSuite(XLoggerTest.class);
+return suite;
+  }
+}

Modified: slf4j/trunk/slf4j-site/src/site/pages/extensions.html