[slf4j-dev] svn commit: r1166 - in slf4j/trunk: slf4j-api/src/main/java/org/slf4j slf4j-api/src/main/java/org/slf4j/impl slf4j-ext/src/main/java/org/slf4j/ext slf4j-jcl/src/main/java/org/slf4j/impl slf4j-jdk14/src/main/java/org/slf4j/impl slf4j-log4j12/src/main/java/org/slf4j/impl slf4j-nop/src/main/java/org/slf4j/impl slf4j-simple/src/main/java/org/slf4j/impl slf4j-site/src/site/pages
ceki at slf4j.org
ceki at slf4j.org
Thu Oct 2 20:39:00 CEST 2008
Author: ceki
Date: Thu Oct 2 20:39:00 2008
New Revision: 1166
Modified:
slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/XLoggerFactory.java
slf4j/trunk/slf4j-jcl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
slf4j/trunk/slf4j-log4j12/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
slf4j/trunk/slf4j-nop/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
slf4j/trunk/slf4j-simple/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
slf4j/trunk/slf4j-site/src/site/pages/news.html
Log:
- Adding version check support in each slf4j-binding
Each copy of StaticLoggerBinder.java found in each binding now contains a field called
VERSION. LoggerFactory checks that the version value found in the binding matches
the expected version number as declared in LoggerFactory
Modified: slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java
==============================================================================
--- slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java (original)
+++ slf4j/trunk/slf4j-api/src/main/java/org/slf4j/LoggerFactory.java Thu Oct 2 20:39:00 2008
@@ -49,7 +49,10 @@
static final String NO_STATICLOGGERBINDER_URL = "http://www.slf4j.org/codes.html#StaticLoggerBinder";
static final String NULL_LF_URL = "http://www.slf4j.org/codes.html#null_LF";
-
+ static final String VERSION_MISMATCH = "http://www.slf4j.org/codes.html#version_mismatch";
+
+ static private final String EXPECTED_VERSION = "";
+
// private constructor prevents instantiation
private LoggerFactory() {
}
@@ -57,6 +60,16 @@
static {
try {
+ String actualVer = StaticLoggerBinder.VERSION;
+ if(EXPECTED_VERSION.equals(actualVer)) {
+ Util.reportFailure("Actual version "+actualVer+" differs from expected version "+EXPECTED_VERSION);
+ Util.reportFailure("See "+VERSION_MISMATCH+" for further details.");
+ }
+ } catch(Exception e) {
+ e.printStackTrace();
+ }
+
+ try {
loggerFactory = StaticLoggerBinder.SINGLETON.getLoggerFactory();
} catch(NoClassDefFoundError ncde) {
String msg = ncde.getMessage();
Modified: slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
==============================================================================
--- slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original)
+++ slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Thu Oct 2 20:39:00 2008
@@ -42,7 +42,13 @@
* The unique instance of this class.
*/
public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
-
+
+ /**
+ * Version tag used to check compatibility. The value of this field is
+ * modified in each release.
+ */
+ public static final String VERSION = "1.5.4-SNAPSHOT";
+
private StaticLoggerBinder() {
throw new UnsupportedOperationException("This code should have never made it into the jar");
}
Modified: slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/XLoggerFactory.java
==============================================================================
--- slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/XLoggerFactory.java (original)
+++ slf4j/trunk/slf4j-ext/src/main/java/org/slf4j/ext/XLoggerFactory.java Thu Oct 2 20:39:00 2008
@@ -19,10 +19,23 @@
*/
public class XLoggerFactory {
+ /**
+ * Get an XLogger instance by name.
+ *
+ * @param name
+ * @return
+ */
public static XLogger getXLogger(String name) {
return new XLogger(LoggerFactory.getLogger(name));
}
+ /**
+ * Get a new XLogger instance by class. The returned XLogger
+ * will be named after the class.
+ *
+ * @param clazz
+ * @return
+ */
@SuppressWarnings("unchecked")
public static Logger getXLogger(Class clazz) {
return getXLogger(clazz.getName());
Modified: slf4j/trunk/slf4j-jcl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
==============================================================================
--- slf4j/trunk/slf4j-jcl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original)
+++ slf4j/trunk/slf4j-jcl/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Thu Oct 2 20:39:00 2008
@@ -38,8 +38,8 @@
import org.slf4j.spi.LoggerFactoryBinder;
/**
- * The binding of {@link LoggerFactory} class with an actual instance of
- * {@link ILoggerFactory} is performed using information returned by this class.
+ * The binding of {@link LoggerFactory} class with an actual instance of
+ * {@link ILoggerFactory} is performed using information returned by this class.
*
* @author Ceki Gülcü
*/
@@ -50,24 +50,32 @@
*/
public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
+ /**
+ * Version tag used to check compatibility. The value of this field is
+ * modified in each release.
+ */
+ public static final String VERSION = "1.5.4-SNAPSHOT";
+
// Binding specific code:
- private static final String loggerFactoryClassStr = JCLLoggerFactory.class.getName();
+ private static final String loggerFactoryClassStr = JCLLoggerFactory.class
+ .getName();
- /** The ILoggerFactory instance returned by the {@link #getLoggerFactory} method
- * should always be the same object
+ /**
+ * The ILoggerFactory instance returned by the {@link #getLoggerFactory}
+ * method should always be the same object
*/
private final ILoggerFactory loggerFactory;
-
+
private StaticLoggerBinder() {
- // Binding specific code:
+ // Binding specific code:
loggerFactory = new JCLLoggerFactory();
}
-
+
public ILoggerFactory getLoggerFactory() {
return loggerFactory;
}
-
+
public String getLoggerFactoryClassStr() {
return loggerFactoryClassStr;
- }
+ }
}
Modified: slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
==============================================================================
--- slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original)
+++ slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Thu Oct 2 20:39:00 2008
@@ -49,7 +49,12 @@
* The unique instance of this class.
*/
public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
- // Note: JCL gets substituted at build time by an appropriate Ant task
+ /**
+ * Version tag used to check compatibility. The value of this field is
+ * modified in each release.
+ */
+ public static final String VERSION = "1.5.4-SNAPSHOT";
+
private static final String loggerFactoryClassStr = org.slf4j.impl.JDK14LoggerFactory.class.getName();
/** The ILoggerFactory instance returned by the {@link #getLoggerFactory} method
Modified: slf4j/trunk/slf4j-log4j12/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
==============================================================================
--- slf4j/trunk/slf4j-log4j12/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original)
+++ slf4j/trunk/slf4j-log4j12/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Thu Oct 2 20:39:00 2008
@@ -50,7 +50,13 @@
* The unique instance of this class.
*/
public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
- // Note: JCL gets substituted at build time by an appropriate Ant task
+
+ /**
+ * Version tag used to check compatibility. The value of this field is
+ * modified in each release.
+ */
+ public static final String VERSION = "1.5.4-SNAPSHOT";
+
private static final String loggerFactoryClassStr = Log4jLoggerFactory.class.getName();
/** The ILoggerFactory instance returned by the {@link #getLoggerFactory} method
Modified: slf4j/trunk/slf4j-nop/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
==============================================================================
--- slf4j/trunk/slf4j-nop/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original)
+++ slf4j/trunk/slf4j-nop/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Thu Oct 2 20:39:00 2008
@@ -43,13 +43,19 @@
*
* @author Ceki Gülcü
*/
-public class StaticLoggerBinder implements LoggerFactoryBinder {
+public class StaticLoggerBinder implements LoggerFactoryBinder {
/**
* The unique instance of this class.
*/
public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
- // Note: JCL gets substituted at build time by an appropriate Ant task
+
+ /**
+ * Version tag used to check compatibility. The value of this field is
+ * modified in each release.
+ */
+ public static final String VERSION = "1.5.4-SNAPSHOT";
+
private static final String loggerFactoryClassStr = NOPLoggerFactory.class.getName();
/** The ILoggerFactory instance returned by the {@link #getLoggerFactory} method
Modified: slf4j/trunk/slf4j-simple/src/main/java/org/slf4j/impl/StaticLoggerBinder.java
==============================================================================
--- slf4j/trunk/slf4j-simple/src/main/java/org/slf4j/impl/StaticLoggerBinder.java (original)
+++ slf4j/trunk/slf4j-simple/src/main/java/org/slf4j/impl/StaticLoggerBinder.java Thu Oct 2 20:39:00 2008
@@ -41,7 +41,12 @@
* The unique instance of this class.
*/
public static final StaticLoggerBinder SINGLETON = new StaticLoggerBinder();
- // Note: JCL gets substituted at build time by an appropriate Ant task
+ /**
+ * Version tag used to check compatibility. The value of this field is
+ * modified in each release.
+ */
+ public static final String VERSION = "1.5.4-SNAPSHOT";
+
private static final String loggerFactoryClassStr = SimpleLoggerFactory.class.getName();
/** The ILoggerFactory instance returned by the {@link #getLoggerFactory} method
Modified: slf4j/trunk/slf4j-site/src/site/pages/news.html
==============================================================================
--- slf4j/trunk/slf4j-site/src/site/pages/news.html (original)
+++ slf4j/trunk/slf4j-site/src/site/pages/news.html Thu Oct 2 20:39:00 2008
@@ -27,7 +27,7 @@
<hr noshade="noshade" size="1"/>
- <h3>September xxth, 2008 - Release of SLF4J 1.5.4</h3>
+ <h3>October xxth, 2008 - Release of SLF4J 1.5.4</h3>
<p>See also the <a href="compatibility.html#1_5_3">compatibility
report for this version</a>.
More information about the slf4j-dev
mailing list