Author: cbegin
Date: Sat Jun 25 00:18:49 2005
New Revision: 201731

URL: http://svn.apache.org/viewcvs?rev=201731&view=rev
Log:
Removed dependency on Commons Logging, will autodetect and use Commons Logging, 
Log4J, JDK 1.4 or no logging (missed non-versioned files last commit)

AND

Improved entity resolvers to be smarter, checks both system and public IDs, and 
both ibatis.com and apache.org

Added:
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/Log.java
    
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/LogFactory.java
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/jakarta/
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/jdk14/
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/log4j/
    ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/nologging/
Modified:
    ibatis/trunk/java/mapper/mapper2/doc/release.txt
    
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/dao/engine/builder/xml/DaoClasspathEntityResolver.java
    
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapClasspathEntityResolver.java

Modified: ibatis/trunk/java/mapper/mapper2/doc/release.txt
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/doc/release.txt?rev=201731&r1=201730&r2=201731&view=diff
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/doc/release.txt (original)
+++ ibatis/trunk/java/mapper/mapper2/doc/release.txt Sat Jun 25 00:18:49 2005
@@ -11,7 +11,8 @@
  o Fixed IBATIS-146 consumes additional result sets before retrieving output 
params (JTDS fix)
  o Fixed IBATIS-130 parameter maps don't allow for complete TypeHandler 
implementations
  o Removed dependency on Commons Logging, will autodetect and use Commons 
Logging, Log4J, JDK 1.4 or no logging
- 
+ o Improved entity resolvers to be smarter, checks both system and public IDs, 
and both ibatis.com and apache.org  
+
 ------------------------------
  2.1.0 - May 16, 2004
 ------------------------------

Added: ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/Log.java
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/Log.java?rev=201731&view=auto
==============================================================================
--- ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/Log.java 
(added)
+++ ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/Log.java Sat 
Jun 25 00:18:49 2005
@@ -0,0 +1,13 @@
+package com.ibatis.common.logging;
+
+public interface Log {
+
+  boolean isDebugEnabled();
+
+  void error(String s, Exception e);
+
+  public void debug(String s);
+
+  public void warn(String s);
+
+}

Added: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/LogFactory.java
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/LogFactory.java?rev=201731&view=auto
==============================================================================
--- 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/LogFactory.java 
(added)
+++ 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/common/logging/LogFactory.java 
Sat Jun 25 00:18:49 2005
@@ -0,0 +1,35 @@
+package com.ibatis.common.logging;
+
+import java.lang.reflect.Constructor;
+
+public class LogFactory {
+
+  private static Constructor logConstructor;
+
+  static {
+    tryImplementation("org.apache.commons.logging.LogFactory", 
"com.ibatis.common.logging.jakarta.JakartaCommonsLoggingImpl");
+    tryImplementation("org.apache.log4j.Logger", 
"com.ibatis.common.logging.log4j.Log4jImpl");
+    tryImplementation("java.util.logging.Logger", 
"com.ibatis.common.logging.jdk14.Jdk14LoggingImpl");
+    tryImplementation("java.lang.Object", 
"com.ibatis.common.logging.nologging.NoLoggingImpl");
+  }
+
+  private static void tryImplementation(String testClassName, String 
implClassName) {
+    if (logConstructor == null) {
+      try {
+        Class.forName(testClassName);
+        Class implClass = Class.forName(implClassName);
+        logConstructor = implClass.getConstructor(new Class[]{Class.class});
+      } catch (Throwable t) {
+      }
+    }
+  }
+
+  public static Log getLog(Class aClass) {
+    try {
+      return (Log)logConstructor.newInstance(new Object[]{aClass});
+    } catch (Throwable t) {
+      throw new RuntimeException("Error creating logger for class " + aClass + 
".  Cause: " + t, t);
+    }
+  }
+
+}

Modified: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/dao/engine/builder/xml/DaoClasspathEntityResolver.java
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/dao/engine/builder/xml/DaoClasspathEntityResolver.java?rev=201731&r1=201730&r2=201731&view=diff
==============================================================================
--- 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/dao/engine/builder/xml/DaoClasspathEntityResolver.java
 (original)
+++ 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/dao/engine/builder/xml/DaoClasspathEntityResolver.java
 Sat Jun 25 00:18:49 2005
@@ -21,12 +21,24 @@
 import org.xml.sax.SAXException;
 
 import java.io.InputStream;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
 
 public class DaoClasspathEntityResolver implements EntityResolver {
 
-  private static final String SYSTEM_ID_DAO = 
"http://www.ibatis.com/dtd/dao-2.dtd";;
   private static final String DTD_PATH_DAO = 
"com/ibatis/dao/engine/builder/xml/dao-2.dtd";
 
+  private static final Map doctypeMap = new HashMap();
+
+  static {
+    doctypeMap.put("http://www.ibatis.com/dtd/dao-2.dtd";, DTD_PATH_DAO);
+    doctypeMap.put("http://ibatis.apache.org/dtd/dao-2.dtd";, DTD_PATH_DAO);
+    doctypeMap.put("-//iBATIS.com//DTD DAO Configuration 2.0", DTD_PATH_DAO);
+    doctypeMap.put("-//iBATIS.com//DTD DAO Config 2.0", DTD_PATH_DAO);
+  }
+
+
   /**
    * Converts a public DTD into a local one
    *
@@ -40,11 +52,16 @@
     InputSource source = null;
 
     try {
-      if (systemId.equals(SYSTEM_ID_DAO)) {
-        InputStream in = Resources.getResourceAsStream(DTD_PATH_DAO);
-        source = new InputSource(in);
-      } else {
-        source = null;
+      String path = (String) doctypeMap.get(publicId);
+      path = (String) doctypeMap.get(systemId);
+      if (path != null) {
+        InputStream in = null;
+        try {
+          in = Resources.getResourceAsStream(path);
+          source = new InputSource(in);
+        } catch (IOException e) {
+          // ignore, null is ok
+        }
       }
     } catch (Exception e) {
       throw new SAXException(e.toString());

Modified: 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapClasspathEntityResolver.java
URL: 
http://svn.apache.org/viewcvs/ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapClasspathEntityResolver.java?rev=201731&r1=201730&r2=201731&view=diff
==============================================================================
--- 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapClasspathEntityResolver.java
 (original)
+++ 
ibatis/trunk/java/mapper/mapper2/src/com/ibatis/sqlmap/engine/builder/xml/SqlMapClasspathEntityResolver.java
 Sat Jun 25 00:18:49 2005
@@ -21,16 +21,31 @@
 import org.xml.sax.SAXException;
 
 import java.io.InputStream;
+import java.io.IOException;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Collections;
 
 /**
  * Offline entity resolver for the iBATIS DTDs
  */
 public class SqlMapClasspathEntityResolver implements EntityResolver {
 
-  private static final String SYSTEM_ID_SQL_MAP_CONFIG = 
"http://www.ibatis.com/dtd/sql-map-config-2.dtd";;
-  private static final String SYSTEM_ID_SQL_MAP = 
"http://www.ibatis.com/dtd/sql-map-2.dtd";;
-  private static final String DTD_PATH_SQL_MAP_CONFIG = 
"com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd";
-  private static final String DTD_PATH_SQL_MAP = 
"com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd";
+  private static final String SQL_MAP_CONFIG_DTD = 
"com/ibatis/sqlmap/engine/builder/xml/sql-map-config-2.dtd";
+  private static final String SQL_MAP_DTD = 
"com/ibatis/sqlmap/engine/builder/xml/sql-map-2.dtd";
+
+  private static final Map doctypeMap = new HashMap();
+
+  static {
+    doctypeMap.put("http://www.ibatis.com/dtd/sql-map-config-2.dtd";, 
SQL_MAP_CONFIG_DTD);
+    doctypeMap.put("http://ibatis.apache.org/dtd/sql-map-config-2.dtd";, 
SQL_MAP_CONFIG_DTD);
+    doctypeMap.put("-//iBATIS.com//DTD SQL Map Config 2.0//EN", 
SQL_MAP_CONFIG_DTD);
+
+    doctypeMap.put("http://www.ibatis.com/dtd/sql-map-2.dtd";, SQL_MAP_DTD);
+    doctypeMap.put("http://ibatis.apache.org/dtd/sql-map-2.dtd";, SQL_MAP_DTD);
+    doctypeMap.put("-//iBATIS.com//DTD SQL Map 2.0//EN", SQL_MAP_DTD);
+  }
+
 
   /**
    * Converts a public DTD into a local one
@@ -43,21 +58,21 @@
   public InputSource resolveEntity(String publicId, String systemId)
       throws SAXException {
     InputSource source = null;
-
     try {
-      if (systemId.equals(SYSTEM_ID_SQL_MAP_CONFIG)) {
-        InputStream in = 
Resources.getResourceAsStream(DTD_PATH_SQL_MAP_CONFIG);
-        source = new InputSource(in);
-      } else if (systemId.equals(SYSTEM_ID_SQL_MAP)) {
-        InputStream in = Resources.getResourceAsStream(DTD_PATH_SQL_MAP);
-        source = new InputSource(in);
-      } else {
-        source = null;
+      String path = (String) doctypeMap.get(publicId);
+      path = (String) doctypeMap.get(systemId);
+      if (path != null) {
+        InputStream in = null;
+        try {
+          in = Resources.getResourceAsStream(path);
+          source = new InputSource(in);
+        } catch (IOException e) {
+          // ignore, null is ok
+        }
       }
     } catch (Exception e) {
       throw new SAXException(e.toString());
     }
-
     return source;
   }
 


Reply via email to