[slf4j-dev] svn commit: r740 - in slf4j/trunk: slf4j-api slf4j-api/src/main/java/org/slf4j slf4j-api/src/main/java/org/slf4j/impl slf4j-jcl/src/main/java/org/slf4j slf4j-jdk14/src/main/java/org/slf4j slf4j-log4j12/src/main/java/org/slf4j slf4j-nop/src/main/java/org/slf4j

seb at slf4j.org seb at slf4j.org
Wed Feb 21 16:47:07 CET 2007


Author: seb
Date: Wed Feb 21 16:47:06 2007
New Revision: 740

Added:
   slf4j/trunk/slf4j-api/src/main/java/org/slf4j/MarkerFactory.java
   slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticMarkerBinder.java
Removed:
   slf4j/trunk/slf4j-jcl/src/main/java/org/slf4j/MarkerFactory.java
   slf4j/trunk/slf4j-jdk14/src/main/java/org/slf4j/MarkerFactory.java
   slf4j/trunk/slf4j-log4j12/src/main/java/org/slf4j/MarkerFactory.java
   slf4j/trunk/slf4j-nop/src/main/java/org/slf4j/MarkerFactory.java
Modified:
   slf4j/trunk/slf4j-api/pom.xml

Log:
Moved the MarkerFactory to the slf4j-api module

Modified: slf4j/trunk/slf4j-api/pom.xml
==============================================================================
--- slf4j/trunk/slf4j-api/pom.xml	(original)
+++ slf4j/trunk/slf4j-api/pom.xml	Wed Feb 21 16:47:06 2007
@@ -67,7 +67,7 @@
         </executions>
         <configuration>
           <tasks>
-            <echo>Removing slf4j-api's dummy StaticLoggerBinder</echo>
+            <echo>Removing slf4j-api's dummy StaticLoggerBinder and StaticMarkerBinder</echo>
             <delete dir="target/classes/org/slf4j/impl"/>
           </tasks>
         </configuration>

Added: slf4j/trunk/slf4j-api/src/main/java/org/slf4j/MarkerFactory.java
==============================================================================
--- (empty file)
+++ slf4j/trunk/slf4j-api/src/main/java/org/slf4j/MarkerFactory.java	Wed Feb 21 16:47:06 2007
@@ -0,0 +1,89 @@
+/*
+ * Copyright (c) 2004-2005 SLF4J.ORG
+ *
+ * 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, and/or sell copies of  the Software, and to permit persons
+ * to whom  the Software is furnished  to do so, provided  that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the  Software and  that both  the above  copyright notice(s)  and this
+ * permission notice appear in supporting documentation.
+ *
+ * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+ * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR  A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF  THIRD PARTY  RIGHTS. IN  NO EVENT  SHALL THE  COPYRIGHT  HOLDER OR
+ * HOLDERS  INCLUDED IN  THIS  NOTICE BE  LIABLE  FOR ANY  CLAIM, OR  ANY
+ * SPECIAL INDIRECT  OR CONSEQUENTIAL DAMAGES, OR  ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS  OF USE, DATA OR PROFITS, WHETHER  IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE  OR OTHER TORTIOUS  ACTION, ARISING OUT OF  OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Except as  contained in  this notice, the  name of a  copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ *
+ */
+package org.slf4j;
+
+import org.slf4j.helpers.Util;
+import org.slf4j.impl.StaticMarkerBinder;
+
+/**
+ * MarkerFactory is a utility class producing {@link Marker} instances as
+ * appropriate for the logging system currently in use.
+ * 
+ * <p>
+ * This class is essentially implemented as a wrapper around an
+ * {@link IMarkerFactory} instance bound at compile time.
+ * 
+ * <p>
+ * Please note that all methods in this class are static.
+ * 
+ * @author Ceki G&uuml;lc&uuml;
+ */
+public class MarkerFactory {
+  static IMarkerFactory markerFactory;
+
+  private MarkerFactory() {
+  }
+
+  static {
+    try {
+      markerFactory = StaticMarkerBinder.SINGLETON.getMarkerFactory();
+    } catch (Exception e) {
+      // we should never get here
+      Util.reportFailure("Could not instantiate instance of class ["
+          + StaticMarkerBinder.SINGLETON.getMarkerFactoryClassStr() + "]", e);
+    }
+  }
+
+  /**
+   * Return a Marker instance as specified by the name parameter using the
+   * previously bound {@link IMarkerFactory}instance.
+   * 
+   * @param name
+   *          The name of the {@link Marker} object to return.
+   * @return marker
+   */
+  public static Marker getMarker(String name) {
+    return markerFactory.getMarker(name);
+  }
+
+  /**
+   * Return the {@link IMarkerFactory}instance in use.
+   * 
+   * <p>The IMarkerFactory instance is usually bound with this class at 
+   * compile time.
+   * 
+   * @return the IMarkerFactory instance in use
+   */
+  public static IMarkerFactory getIMarkerFactory() {
+    return markerFactory;
+  }
+}
\ No newline at end of file

Added: slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticMarkerBinder.java
==============================================================================
--- (empty file)
+++ slf4j/trunk/slf4j-api/src/main/java/org/slf4j/impl/StaticMarkerBinder.java	Wed Feb 21 16:47:06 2007
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2004-2005 SLF4J.ORG
+ * Copyright (c) 2004-2005 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, and/or sell copies of  the Software, and to permit persons
+ * to whom  the Software is furnished  to do so, provided  that the above
+ * copyright notice(s) and this permission notice appear in all copies of
+ * the  Software and  that both  the above  copyright notice(s)  and this
+ * permission notice appear in supporting documentation.
+ *
+ * THE  SOFTWARE IS  PROVIDED  "AS  IS", WITHOUT  WARRANTY  OF ANY  KIND,
+ * EXPRESS OR  IMPLIED, INCLUDING  BUT NOT LIMITED  TO THE  WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR  A PARTICULAR PURPOSE AND NONINFRINGEMENT
+ * OF  THIRD PARTY  RIGHTS. IN  NO EVENT  SHALL THE  COPYRIGHT  HOLDER OR
+ * HOLDERS  INCLUDED IN  THIS  NOTICE BE  LIABLE  FOR ANY  CLAIM, OR  ANY
+ * SPECIAL INDIRECT  OR CONSEQUENTIAL DAMAGES, OR  ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS  OF USE, DATA OR PROFITS, WHETHER  IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE  OR OTHER TORTIOUS  ACTION, ARISING OUT OF  OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Except as  contained in  this notice, the  name of a  copyright holder
+ * shall not be used in advertising or otherwise to promote the sale, use
+ * or other dealings in this Software without prior written authorization
+ * of the copyright holder.
+ *
+ */
+
+package org.slf4j.impl;
+
+import org.slf4j.IMarkerFactory;
+import org.slf4j.MarkerFactory;
+import org.slf4j.helpers.BasicMarkerFactory;
+import org.slf4j.spi.MarkerFactoryBinder;
+
+/**
+ * 
+ * The binding of {@link MarkerFactory} class with an actual instance of 
+ * {@link IMarkerFactory} is performed using information returned by this class. 
+ * 
+ * This class is meant to provide a dummy StaticMarkerBinder to the slf4j-api module.
+ * 
+ * @author Ceki G&uuml;lc&uuml;
+ */
+public class StaticMarkerBinder implements MarkerFactoryBinder {
+
+  /**
+   * The unique instance of this class.
+   */
+  public static final StaticMarkerBinder SINGLETON = new StaticMarkerBinder();
+
+  private StaticMarkerBinder() {
+  }
+  
+  /**
+   * Currently this method always returns an instance of 
+   * {@link BasicMarkerFactory}.
+   */
+  public IMarkerFactory getMarkerFactory() {
+    return null;
+  }
+  
+  /**
+   * Currently, this method returns the class name of
+   * {@link BasicMarkerFactory}.
+   */
+  public String getMarkerFactoryClassStr() {
+    return BasicMarkerFactory.class.getName();
+  }
+  
+  
+}



More information about the slf4j-dev mailing list