[slf4j-dev] [GIT] SLF4J: Simple Logging Facade for Java branch master updated. v_1.6.5-7-ge5eb0b0

Gitbot git-noreply at pixie.qos.ch
Mon Jun 11 16:18:14 CEST 2012


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "SLF4J: Simple Logging Facade for Java".

The branch, master has been updated
       via  e5eb0b068d3e99fb5a39c82ce6f72e484f33e9d1 (commit)
      from  3e24a5c715dcd3a8597ba811716152af9aa2a37d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.qos.ch/gitweb/?p=slf4j.git;a=commit;h=e5eb0b068d3e99fb5a39c82ce6f72e484f33e9d1
http://github.com/ceki/slf4j/commit/e5eb0b068d3e99fb5a39c82ce6f72e484f33e9d1

commit e5eb0b068d3e99fb5a39c82ce6f72e484f33e9d1
Author: Ceki Gulcu <ceki at qos.ch>
Date:   Mon Jun 11 16:16:40 2012 +0200

    preparing release 1.6.6

diff --git a/integration/build.xml b/integration/build.xml
index 5ba578f..9652ce3 100644
--- a/integration/build.xml
+++ b/integration/build.xml
@@ -53,21 +53,19 @@
 	</path >
 
 	
-	<path id="multiBinding">
-		<pathelement location="target/test-classes/" />
-		<pathelement location="../slf4j-api/target/slf4j-api-${currentVersion}.jar" />
-		<pathelement location="./lib/slf4j-simple-1.5.0.jar" />
-		<pathelement location="./lib/slf4j-nop-1.5.6.jar" />
-	</path >
-			
-
-	<path id="multiBinding">
+	<path id="incompatibleMultiBinding">
 		<pathelement location="target/test-classes/" />
 		<pathelement location="../slf4j-api/target/slf4j-api-${currentVersion}.jar" />
 		<pathelement location="./lib/slf4j-simple-1.5.0.jar" />
 		<pathelement location="./lib/slf4j-nop-1.5.6.jar" />
 	</path >
 
+  <path id="multiBinding">
+ 		<pathelement location="target/test-classes/" />
+ 		<pathelement location="../slf4j-api/target/slf4j-api-${currentVersion}.jar" />
+    <pathelement location="../slf4j-simple/target/slf4j-simple-${currentVersion}.jar" />
+    <pathelement location="../slf4j-nop/target/slf4j-nop-${currentVersion}.jar" />
+ 	</path >
 
   <path id="binding1699">
 		<pathelement location="target/test-classes/" />
@@ -104,6 +102,7 @@
                 testMismatch, 
                 testMatch,
 		            testMultiBinding,
+		            testIncompatibleMultiBinding,
                 testFuture_16Series">
 	</target>
 
@@ -159,16 +158,26 @@
 		</junit>
 	</target>
 
-	<target name="testMultiBinding">
+	<target name="testIncompatibleMultiBinding">
 		<junit printsummary="yes" fork="no" haltonfailure="yes">
-			<classpath refid="multiBinding" />
+			<classpath refid="incompatibleMultiBinding" />
 			<formatter type="plain" />
 			<test fork="yes" todir="target/unit-reports" 
-            outfile="TEST-MultiBinding" 
-            name="org.slf4j.MultiBindingAssertionTest" />
+            outfile="TEST-IncompatibleMultiBinding"
+            name="org.slf4j.IncompatibleMultiBindingAssertionTest" />
 		</junit>
 	</target>
 
+  <target name="testMultiBinding">
+ 		<junit printsummary="yes" fork="no" haltonfailure="yes">
+ 			<classpath refid="multiBinding" />
+ 			<formatter type="plain" />
+ 			<test fork="yes" todir="target/unit-reports"
+             outfile="TEST-MultiBinding"
+             name="org.slf4j.MultiBindingAssertionTest" />
+ 		</junit>
+ 	</target>
+
 	<target name="testFuture_16Series">
 		<junit printsummary="yes" fork="no" haltonfailure="yes">
 			<classpath refid="binding1699" />
diff --git a/integration/pom.xml b/integration/pom.xml
index 390fc0c..c5af965 100644
--- a/integration/pom.xml
+++ b/integration/pom.xml
@@ -6,7 +6,7 @@
 	<parent>
 		<groupId>org.slf4j</groupId>
 		<artifactId>slf4j-parent</artifactId>
-    	<version>1.6.6-SNAPSHOT</version>
+    	<version>1.6.6</version>
 	</parent>
 	
 	<modelVersion>4.0.0</modelVersion>
diff --git a/integration/src/test/java/org/slf4j/MissingSingletonMethodAssertionTest.java b/integration/src/test/java/org/slf4j/MissingSingletonMethodAssertionTest.java
index 6b37cba..631ca09 100644
--- a/integration/src/test/java/org/slf4j/MissingSingletonMethodAssertionTest.java
+++ b/integration/src/test/java/org/slf4j/MissingSingletonMethodAssertionTest.java
@@ -80,7 +80,7 @@ public class MissingSingletonMethodAssertionTest extends TestCase {
     {
       String s = (String) sps.stringList.get(2);
       assertTrue(s
-          .contains("SLF4J: Upgrade your binding to version 1.6.x. or 2.0.x"));
+          .contains("SLF4J: Upgrade your binding to version 1.6.x."));
     }
 
   }
diff --git a/integration/src/test/java/org/slf4j/MultiBindingAssertionTest.java b/integration/src/test/java/org/slf4j/MultiBindingAssertionTest.java
index 81f679a..375f73f 100644
--- a/integration/src/test/java/org/slf4j/MultiBindingAssertionTest.java
+++ b/integration/src/test/java/org/slf4j/MultiBindingAssertionTest.java
@@ -51,22 +51,15 @@ public class MultiBindingAssertionTest extends TestCase {
   }
 
   public void test() throws Exception {
-    try {
-      Logger logger = LoggerFactory.getLogger(this.getClass());
-      String msg = "hello world " + diff;
-      logger.info(msg);
-      fail("was expecting NoSuchMethodError");
-    } catch (NoSuchMethodError e) {
-    }
+    Logger logger = LoggerFactory.getLogger(this.getClass());
+    String msg = "hello world " + diff;
+    logger.info(msg);
     List list = sps.stringList;
     assertMsgContains(list, 0, "Class path contains multiple SLF4J bindings.");
     assertMsgContains(list, 1, "Found binding in");
     assertMsgContains(list, 2, "Found binding in");
     assertMsgContains(list, 3, "See http://www.slf4j.org/codes.html");
-    assertMsgContains(list, 4,
-        "slf4j-api 1.6.x (or later) is incompatible with this binding");
-    assertMsgContains(list, 5, "Your binding is version 1.5.5 or earlier.");
-
+    assertMsgContains(list, 4, "Actual binding is of type [");
   }
 
   void assertMsgContains(List strList, int index, String msg) {
diff --git a/jcl-over-slf4j/pom.xml b/jcl-over-slf4j/pom.xml
index 2599f41..77c77a2 100644
--- a/jcl-over-slf4j/pom.xml
+++ b/jcl-over-slf4j/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/jul-to-slf4j/pom.xml b/jul-to-slf4j/pom.xml
index 7e49d1b..bf17a52 100644
--- a/jul-to-slf4j/pom.xml
+++ b/jul-to-slf4j/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/log4j-over-slf4j/pom.xml b/log4j-over-slf4j/pom.xml
index 6730a55..4891a7b 100644
--- a/log4j-over-slf4j/pom.xml
+++ b/log4j-over-slf4j/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/osgi-over-slf4j/pom.xml b/osgi-over-slf4j/pom.xml
index 23ec0ca..b6a8715 100644
--- a/osgi-over-slf4j/pom.xml
+++ b/osgi-over-slf4j/pom.xml
@@ -3,7 +3,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
   
   <modelVersion>4.0.0</modelVersion>
diff --git a/pom.xml b/pom.xml
index c3a1d98..5333219 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
 
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-parent</artifactId>
-  <version>1.6.6-SNAPSHOT</version>
+  <version>1.6.6</version>
 
   <packaging>pom</packaging>
   <name>SLF4J</name>
diff --git a/slf4j-api/pom.xml b/slf4j-api/pom.xml
index eeb0335..383c69a 100644
--- a/slf4j-api/pom.xml
+++ b/slf4j-api/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java b/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
index 40284b5..e436c7b 100644
--- a/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
+++ b/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
@@ -38,37 +38,37 @@ import org.slf4j.impl.StaticLoggerBinder;
  * various logging APIs, most notably for log4j, logback and JDK 1.4 logging.
  * Other implementations such as {@link org.slf4j.impl.NOPLogger NOPLogger} and
  * {@link org.slf4j.impl.SimpleLogger SimpleLogger} are also supported.
- * 
- * <p>
+ * <p/>
+ * <p/>
  * <code>LoggerFactory</code> is essentially a wrapper around an
  * {@link ILoggerFactory} instance bound with <code>LoggerFactory</code> at
  * compile time.
- * 
- * <p>
+ * <p/>
+ * <p/>
  * Please note that all methods in <code>LoggerFactory</code> are static.
- * 
+ *
  * @author Ceki Gülcü
  * @author Robert Elliot
  */
 public final class LoggerFactory {
 
   static final String CODES_PREFIX = "http://www.slf4j.org/codes.html";
-    
-  static final String NO_STATICLOGGERBINDER_URL = CODES_PREFIX+"#StaticLoggerBinder";
-  static final String MULTIPLE_BINDINGS_URL = CODES_PREFIX+"#multiple_bindings";
-  static final String NULL_LF_URL = CODES_PREFIX+"#null_LF";
-  static final String VERSION_MISMATCH = CODES_PREFIX+"#version_mismatch";
-  static final String SUBSTITUTE_LOGGER_URL = CODES_PREFIX+"#substituteLogger";
 
-  static final String UNSUCCESSFUL_INIT_URL = CODES_PREFIX+"#unsuccessfulInit";
+  static final String NO_STATICLOGGERBINDER_URL = CODES_PREFIX + "#StaticLoggerBinder";
+  static final String MULTIPLE_BINDINGS_URL = CODES_PREFIX + "#multiple_bindings";
+  static final String NULL_LF_URL = CODES_PREFIX + "#null_LF";
+  static final String VERSION_MISMATCH = CODES_PREFIX + "#version_mismatch";
+  static final String SUBSTITUTE_LOGGER_URL = CODES_PREFIX + "#substituteLogger";
+
+  static final String UNSUCCESSFUL_INIT_URL = CODES_PREFIX + "#unsuccessfulInit";
   static final String UNSUCCESSFUL_INIT_MSG = "org.slf4j.LoggerFactory could not be successfully initialized. See also "
-      + UNSUCCESSFUL_INIT_URL;
+          + UNSUCCESSFUL_INIT_URL;
 
   static final int UNINITIALIZED = 0;
-  static final int ONGOING_INITILIZATION = 1;
-  static final int FAILED_INITILIZATION = 2;
-  static final int SUCCESSFUL_INITILIZATION = 3;
-  static final int NOP_FALLBACK_INITILIZATION = 4;
+  static final int ONGOING_INITIALIZATION = 1;
+  static final int FAILED_INITIALIZATION = 2;
+  static final int SUCCESSFUL_INITIALIZATION = 3;
+  static final int NOP_FALLBACK_INITIALIZATION = 4;
 
   static int INITIALIZATION_STATE = UNINITIALIZED;
   static SubstituteLoggerFactory TEMP_FACTORY = new SubstituteLoggerFactory();
@@ -77,11 +77,11 @@ public final class LoggerFactory {
   /**
    * It is LoggerFactory's responsibility to track version changes and manage
    * the compatibility list.
-   * 
-   * <p>
+   * <p/>
+   * <p/>
    * It is assumed that all versions in the 1.6 are mutually compatible.
-   * */
-  static private final String[] API_COMPATIBILITY_LIST = new String[] { "1.6" };
+   */
+  static private final String[] API_COMPATIBILITY_LIST = new String[]{"1.6"};
 
   // private constructor prevents instantiation
   private LoggerFactory() {
@@ -89,13 +89,13 @@ public final class LoggerFactory {
 
   /**
    * Force LoggerFactory to consider itself uninitialized.
-   * 
-   * <p>
+   * <p/>
+   * <p/>
    * This method is intended to be called by classes (in the same package) for
    * testing purposes. This method is internal. It can be modified, renamed or
    * removed at any time without notice.
-   * 
-   * <p>
+   * <p/>
+   * <p/>
    * You are strongly discouraged from calling this method in production code.
    */
   static void reset() {
@@ -104,50 +104,50 @@ public final class LoggerFactory {
   }
 
   private final static void performInitialization() {
-    singleImplementationSanityCheck();
     bind();
-    if (INITIALIZATION_STATE == SUCCESSFUL_INITILIZATION) {
+    if (INITIALIZATION_STATE == SUCCESSFUL_INITIALIZATION) {
       versionSanityCheck();
-   
     }
   }
 
   private static boolean messageContainsOrgSlf4jImplStaticLoggerBinder(String msg) {
-    if(msg == null)
+    if (msg == null)
       return false;
-    if(msg.indexOf("org/slf4j/impl/StaticLoggerBinder") != -1)
+    if (msg.indexOf("org/slf4j/impl/StaticLoggerBinder") != -1)
       return true;
-    if(msg.indexOf("org.slf4j.impl.StaticLoggerBinder") != -1)
+    if (msg.indexOf("org.slf4j.impl.StaticLoggerBinder") != -1)
       return true;
     return false;
   }
 
   private final static void bind() {
     try {
+      Set staticLoggerBinderPathSet = findPossibleStaticLoggerBinderPathSet();
+      reportMultipleBindingAmbiguity(staticLoggerBinderPathSet);
       // the next line does the binding
       StaticLoggerBinder.getSingleton();
-      INITIALIZATION_STATE = SUCCESSFUL_INITILIZATION;
+      INITIALIZATION_STATE = SUCCESSFUL_INITIALIZATION;
+      reportActualBinding(staticLoggerBinderPathSet);
       emitSubstituteLoggerWarning();
     } catch (NoClassDefFoundError ncde) {
       String msg = ncde.getMessage();
       if (messageContainsOrgSlf4jImplStaticLoggerBinder(msg)) {
-        INITIALIZATION_STATE = NOP_FALLBACK_INITILIZATION;
-        Util
-            .report("Failed to load class \"org.slf4j.impl.StaticLoggerBinder\".");
+        INITIALIZATION_STATE = NOP_FALLBACK_INITIALIZATION;
+        Util.report("Failed to load class \"org.slf4j.impl.StaticLoggerBinder\".");
         Util.report("Defaulting to no-operation (NOP) logger implementation");
         Util.report("See " + NO_STATICLOGGERBINDER_URL
-            + " for further details.");
+                + " for further details.");
       } else {
         failedBinding(ncde);
         throw ncde;
       }
-    } catch(java.lang.NoSuchMethodError nsme) {
+    } catch (java.lang.NoSuchMethodError nsme) {
       String msg = nsme.getMessage();
       if (msg != null && msg.indexOf("org.slf4j.impl.StaticLoggerBinder.getSingleton()") != -1) {
-        INITIALIZATION_STATE = FAILED_INITILIZATION;
+        INITIALIZATION_STATE = FAILED_INITIALIZATION;
         Util.report("slf4j-api 1.6.x (or later) is incompatible with this binding.");
         Util.report("Your binding is version 1.5.5 or earlier.");
-        Util.report("Upgrade your binding to version 1.6.x. or 2.0.x");
+        Util.report("Upgrade your binding to version 1.6.x.");
       }
       throw nsme;
     } catch (Exception e) {
@@ -157,7 +157,7 @@ public final class LoggerFactory {
   }
 
   static void failedBinding(Throwable t) {
-    INITIALIZATION_STATE = FAILED_INITILIZATION;
+    INITIALIZATION_STATE = FAILED_INITIALIZATION;
     Util.report("Failed to instantiate SLF4J LoggerFactory", t);
   }
 
@@ -166,10 +166,8 @@ public final class LoggerFactory {
     if (loggerNameList.size() == 0) {
       return;
     }
-    Util
-        .report("The following loggers will not work because they were created");
-    Util
-        .report("during the default configuration phase of the underlying logging system.");
+    Util.report("The following loggers will not work because they were created");
+    Util.report("during the default configuration phase of the underlying logging system.");
     Util.report("See also " + SUBSTITUTE_LOGGER_URL);
     for (int i = 0; i < loggerNameList.size(); i++) {
       String loggerName = (String) loggerNameList.get(i);
@@ -189,8 +187,8 @@ public final class LoggerFactory {
       }
       if (!match) {
         Util.report("The requested version " + requested
-            + " by your slf4j binding is not compatible with "
-            + Arrays.asList(API_COMPATIBILITY_LIST).toString());
+                + " by your slf4j binding is not compatible with "
+                + Arrays.asList(API_COMPATIBILITY_LIST).toString());
         Util.report("See " + VERSION_MISMATCH + " for further details.");
       }
     } catch (java.lang.NoSuchFieldError nsfe) {
@@ -208,44 +206,63 @@ public final class LoggerFactory {
   // the class itself.
   private static String STATIC_LOGGER_BINDER_PATH = "org/slf4j/impl/StaticLoggerBinder.class";
 
-  private static void singleImplementationSanityCheck() {
+  private static Set findPossibleStaticLoggerBinderPathSet() {
+    // use Set instead of list in order to deal with  bug #138
+    // LinkedHashSet appropriate here because it preserves insertion order during iteration
+    Set staticLoggerBinderPathSet = new LinkedHashSet();
     try {
       ClassLoader loggerFactoryClassLoader = LoggerFactory.class
-          .getClassLoader();
+              .getClassLoader();
       Enumeration paths;
       if (loggerFactoryClassLoader == null) {
         paths = ClassLoader.getSystemResources(STATIC_LOGGER_BINDER_PATH);
       } else {
         paths = loggerFactoryClassLoader
-            .getResources(STATIC_LOGGER_BINDER_PATH);
+                .getResources(STATIC_LOGGER_BINDER_PATH);
       }
-      // use Set instead of list in order to deal with  bug #138
-      // LinkedHashSet appropriate here because it preserves insertion order during iteration
-      Set implementationSet = new LinkedHashSet();
       while (paths.hasMoreElements()) {
         URL path = (URL) paths.nextElement();
-        implementationSet.add(path);
-      }
-      if (implementationSet.size() > 1) {
-        Util.report("Class path contains multiple SLF4J bindings.");
-        Iterator iterator = implementationSet.iterator();
-        while(iterator.hasNext()) {
-          URL path = (URL) iterator.next();
-          Util.report("Found binding in [" + path + "]");
-        }
-        Util.report("See " + MULTIPLE_BINDINGS_URL + " for an explanation.");
+        staticLoggerBinderPathSet.add(path);
       }
     } catch (IOException ioe) {
       Util.report("Error getting resources from path", ioe);
     }
+    return staticLoggerBinderPathSet;
+  }
+
+  private static boolean isAmbiguousStaticLoggerBinderPathSet(Set staticLoggerBinderPathSet) {
+    return staticLoggerBinderPathSet.size() > 1;
+  }
+
+  /**
+   * Prints a warning message on the console if multiple bindings were found on the class path.
+   * No reporting is done otherwise.
+   *
+   */
+  private static void reportMultipleBindingAmbiguity(Set staticLoggerBinderPathSet) {
+    if (isAmbiguousStaticLoggerBinderPathSet(staticLoggerBinderPathSet)) {
+      Util.report("Class path contains multiple SLF4J bindings.");
+      Iterator iterator = staticLoggerBinderPathSet.iterator();
+      while (iterator.hasNext()) {
+        URL path = (URL) iterator.next();
+        Util.report("Found binding in [" + path + "]");
+      }
+      Util.report("See " + MULTIPLE_BINDINGS_URL + " for an explanation.");
+    }
   }
 
+  private static void reportActualBinding(Set staticLoggerBinderPathSet) {
+    if (isAmbiguousStaticLoggerBinderPathSet(staticLoggerBinderPathSet)) {
+      Util.report("Actual binding is of type ["+StaticLoggerBinder.getSingleton().getLoggerFactoryClassStr()+"]");
+    }
+  }
+
+
   /**
    * Return a logger named according to the name parameter using the statically
    * bound {@link ILoggerFactory} instance.
-   * 
-   * @param name
-   *          The name of the logger.
+   *
+   * @param name The name of the logger.
    * @return logger
    */
   public static Logger getLogger(String name) {
@@ -256,9 +273,8 @@ public final class LoggerFactory {
   /**
    * Return a logger named corresponding to the class passed as parameter, using
    * the statically bound {@link ILoggerFactory} instance.
-   * 
-   * @param clazz
-   *          the returned logger will be named after clazz
+   *
+   * @param clazz the returned logger will be named after clazz
    * @return logger
    */
   public static Logger getLogger(Class clazz) {
@@ -267,29 +283,28 @@ public final class LoggerFactory {
 
   /**
    * Return the {@link ILoggerFactory} instance in use.
-   * 
-   * <p>
+   * <p/>
+   * <p/>
    * ILoggerFactory instance is bound with this class at compile time.
-   * 
+   *
    * @return the ILoggerFactory instance in use
    */
   public static ILoggerFactory getILoggerFactory() {
     if (INITIALIZATION_STATE == UNINITIALIZED) {
-      INITIALIZATION_STATE = ONGOING_INITILIZATION;
+      INITIALIZATION_STATE = ONGOING_INITIALIZATION;
       performInitialization();
-
     }
     switch (INITIALIZATION_STATE) {
-    case SUCCESSFUL_INITILIZATION:
-      return StaticLoggerBinder.getSingleton().getLoggerFactory();
-    case NOP_FALLBACK_INITILIZATION:
-      return NOP_FALLBACK_FACTORY;
-    case FAILED_INITILIZATION:
-      throw new IllegalStateException(UNSUCCESSFUL_INIT_MSG);
-    case ONGOING_INITILIZATION:
-      // support re-entrant behavior.
-      // See also http://bugzilla.slf4j.org/show_bug.cgi?id=106
-      return TEMP_FACTORY;
+      case SUCCESSFUL_INITIALIZATION:
+        return StaticLoggerBinder.getSingleton().getLoggerFactory();
+      case NOP_FALLBACK_INITIALIZATION:
+        return NOP_FALLBACK_FACTORY;
+      case FAILED_INITIALIZATION:
+        throw new IllegalStateException(UNSUCCESSFUL_INIT_MSG);
+      case ONGOING_INITIALIZATION:
+        // support re-entrant behavior.
+        // See also http://bugzilla.slf4j.org/show_bug.cgi?id=106
+        return TEMP_FACTORY;
     }
     throw new IllegalStateException("Unreachable code");
   }
diff --git a/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java b/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
index f3ec28b..151f24e 100644
--- a/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
+++ b/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
@@ -60,14 +60,14 @@ public class StaticLoggerBinder {
   public static String REQUESTED_API_VERSION = "1.6";  // !final
   
   private StaticLoggerBinder() {
-    throw new UnsupportedOperationException("This code should have never made it into the jar");
+    throw new UnsupportedOperationException("This code should have never made it into slf4j-api.jar");
   }
 
   public ILoggerFactory getLoggerFactory() {
-    throw new UnsupportedOperationException("This code should never make it into the jar");
+    throw new UnsupportedOperationException("This code should never make it into slf4j-api.jar");
   }
 
   public String getLoggerFactoryClassStr() {
-    throw new UnsupportedOperationException("This code should never make it into the jar");
+    throw new UnsupportedOperationException("This code should never make it into slf4j-api.jar");
   }
 }
diff --git a/slf4j-ext/pom.xml b/slf4j-ext/pom.xml
index f331f0a..991c29a 100644
--- a/slf4j-ext/pom.xml
+++ b/slf4j-ext/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-jcl/pom.xml b/slf4j-jcl/pom.xml
index 42df659..98c21ab 100644
--- a/slf4j-jcl/pom.xml
+++ b/slf4j-jcl/pom.xml
@@ -3,7 +3,7 @@
 	<parent>
 		<groupId>org.slf4j</groupId>
 		<artifactId>slf4j-parent</artifactId>
-		<version>1.6.6-SNAPSHOT</version>
+		<version>1.6.6</version>
 	</parent>
 	
 	<modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-jdk14/pom.xml b/slf4j-jdk14/pom.xml
index 62817b7..9fa8df7 100644
--- a/slf4j-jdk14/pom.xml
+++ b/slf4j-jdk14/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-log4j12/pom.xml b/slf4j-log4j12/pom.xml
index e1d70a0..c0bbf56 100644
--- a/slf4j-log4j12/pom.xml
+++ b/slf4j-log4j12/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-migrator/pom.xml b/slf4j-migrator/pom.xml
index c4f5f48..57807d7 100644
--- a/slf4j-migrator/pom.xml
+++ b/slf4j-migrator/pom.xml
@@ -7,7 +7,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-nop/pom.xml b/slf4j-nop/pom.xml
index 9d2f182..3b348f9 100644
--- a/slf4j-nop/pom.xml
+++ b/slf4j-nop/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-osgi-integration-test/pom.xml b/slf4j-osgi-integration-test/pom.xml
index ec4519b..1302ed8 100644
--- a/slf4j-osgi-integration-test/pom.xml
+++ b/slf4j-osgi-integration-test/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-osgi-test-bundle/pom.xml b/slf4j-osgi-test-bundle/pom.xml
index d6da1ab..808a517 100644
--- a/slf4j-osgi-test-bundle/pom.xml
+++ b/slf4j-osgi-test-bundle/pom.xml
@@ -6,7 +6,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-simple/pom.xml b/slf4j-simple/pom.xml
index b9a131f..757ebbd 100644
--- a/slf4j-simple/pom.xml
+++ b/slf4j-simple/pom.xml
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-site/pom.xml b/slf4j-site/pom.xml
index 7ff8d72..47646e5 100644
--- a/slf4j-site/pom.xml
+++ b/slf4j-site/pom.xml
@@ -5,7 +5,7 @@
   <parent>
     <groupId>org.slf4j</groupId>
     <artifactId>slf4j-parent</artifactId>
-    <version>1.6.6-SNAPSHOT</version>
+    <version>1.6.6</version>
   </parent>
 
   <modelVersion>4.0.0</modelVersion>
diff --git a/slf4j-site/src/site/pages/codes.html b/slf4j-site/src/site/pages/codes.html
index 8919963..6b24388 100644
--- a/slf4j-site/src/site/pages/codes.html
+++ b/slf4j-site/src/site/pages/codes.html
@@ -150,19 +150,22 @@
     <p>SLF4J API is desinged to bind with one and only one underlying
     logging framework at a time. If more than one binding is present
     on the class path, SLF4J will emit a warning, listing the location
-    of those bindings. When this happens, select the one and only one
-    binding you wish to use, and remove the other bindings.
-    </p>
+    of those bindings.</p>
 
-    <p>For example, if you have both
+    <p>When multiple bindings are available on the class path, select
+    one and only one binding you wish to use, and remove the other
+    bindings. For example, if you have both
     <em>slf4j-simple-${version}.jar</em> and
     <em>slf4j-nop-${version}.jar</em> on the class path and you wish
     to use the nop (no-operation) binding, then remove
-    <em>slf4j-simple-${version}.jar</em> from the class path.</p>
+    <em>slf4j-simple-${version}.jar</em> from the class path. If it is
+    not possible to remove the superflous bindings, SLF4J will still
+    bind with one logging framework/implementation. As of version
+    1.6.6, SLF4J will name the framework/implementation class it is
+    actually bound to.</p>
 
     <p><span class="label notice">Note</span> The warning emitted by
-    SLF4J is just that, a warning. SLF4J will still bind with the
-    first framework it finds on the class path.
+    SLF4J is just that, a warning.
     </p>
 
     <!-- ====================================================== -->
diff --git a/slf4j-site/src/site/pages/news.html b/slf4j-site/src/site/pages/news.html
index 4ad5429..7535468 100644
--- a/slf4j-site/src/site/pages/news.html
+++ b/slf4j-site/src/site/pages/news.html
@@ -29,7 +29,20 @@
 
    <hr noshade="noshade" size="1"/>
 
-   <h3> ... - Release of SLF4J 1.6.6</h3>
+   <h3>11th of June, 2012 of SLF4J 1.6.6</h3>
+ 
+   <p>In case multiple binding are found on the class path, SLF4J will
+   now output the name the framework/implementation class it is
+   isbound to. This should make</p>
+
+   <p><a
+   href="apidocs/org/slf4j/impl/SimpleLogger.html">SimpleLogger</a>
+   now supports configuration properties. </p>
+
+   <p>LoggerWrapper in the slf4j-ext module now correctly deals with
+   markers. This fixes <a
+   href="http://bugzilla.slf4j.org/show_bug.cgi?id=265">bug #265</a>
+   reported by Dario Campagna.</p>
 
    <p>The log4j-over-slf4j module now supports legacy projects
    providing their own log4j <code>LoggerFactory</code>. This fixes <a

-----------------------------------------------------------------------

Summary of changes:
 integration/build.xml                              |   35 +++--
 integration/pom.xml                                |    2 +-
 .../slf4j/MissingSingletonMethodAssertionTest.java |    2 +-
 .../java/org/slf4j/MultiBindingAssertionTest.java  |   15 +--
 jcl-over-slf4j/pom.xml                             |    2 +-
 jul-to-slf4j/pom.xml                               |    2 +-
 log4j-over-slf4j/pom.xml                           |    2 +-
 osgi-over-slf4j/pom.xml                            |    2 +-
 pom.xml                                            |    2 +-
 slf4j-api/pom.xml                                  |    2 +-
 .../src/main/java/org/slf4j/LoggerFactory.java     |  181 +++++++++++---------
 .../java/org/slf4j/impl/StaticLoggerBinder.java    |    6 +-
 slf4j-ext/pom.xml                                  |    2 +-
 slf4j-jcl/pom.xml                                  |    2 +-
 slf4j-jdk14/pom.xml                                |    2 +-
 slf4j-log4j12/pom.xml                              |    2 +-
 slf4j-migrator/pom.xml                             |    2 +-
 slf4j-nop/pom.xml                                  |    2 +-
 slf4j-osgi-integration-test/pom.xml                |    2 +-
 slf4j-osgi-test-bundle/pom.xml                     |    2 +-
 slf4j-simple/pom.xml                               |    2 +-
 slf4j-site/pom.xml                                 |    2 +-
 slf4j-site/src/site/pages/codes.html               |   17 +-
 slf4j-site/src/site/pages/news.html                |   15 ++-
 24 files changed, 169 insertions(+), 136 deletions(-)


hooks/post-receive
-- 
SLF4J: Simple Logging Facade for Java


More information about the slf4j-dev mailing list