You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2009/12/05 16:41:49 UTC

svn commit: r887555 - in /ibatis/java/ibatis-3/trunk: ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/ ibatis-3-core/src/main/java/org/apache/ibatis/builder/ ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/ ibatis-3-core/src/ma...

Author: cbegin
Date: Sat Dec  5 15:41:48 2009
New Revision: 887555

URL: http://svn.apache.org/viewvc?rev=887555&view=rev
Log:
IBATIS-705 constructor mapping in result map does not support primitive type parameters

Modified:
    ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/InlineParameterMapParser.java
    ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapConfigParser.java
    ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapParser.java
    ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlStatementParser.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/TypeAliasRegistry.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/Author.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/ImmutableAuthor.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/AuthorMapper.xml
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/null_associations/sqlmap.xml
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml
    ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/type/TypeAliasRegistryTest.java

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/InlineParameterMapParser.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/InlineParameterMapParser.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/InlineParameterMapParser.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/InlineParameterMapParser.java Sat Dec  5 15:41:48 2009
@@ -101,10 +101,9 @@
       if (paramParser.hasMoreTokens()) {
         String value = paramParser.nextToken();
         if ("javaType".equals(field)) {
-          value = typeAliasRegistry.resolveAlias(value);
           try {
-            javaType = Class.forName(value);
-          } catch (ClassNotFoundException e) {
+            javaType = typeAliasRegistry.resolveAlias(value);
+          } catch (Exception e) {
             throw new SqlMapException("Error loading javaType class");
           }
         } else if ("jdbcType".equals(field)) {
@@ -115,8 +114,7 @@
           throw new UnsupportedOperationException("iBATIS 3 does not support null value substitution.");
         } else if ("handler".equals(field)) {
           try {
-            value = typeAliasRegistry.resolveAlias(value);
-            Object impl = Resources.classForName(value).newInstance();
+            Object impl = typeAliasRegistry.resolveAlias(value).newInstance();
             typeHandler = ((TypeHandler) impl);
           } catch (Exception e) {
             throw new SqlMapException("Error loading class specified by handler field in " + token + ".  Cause: " + e, e);
@@ -205,8 +203,7 @@
         handler = typeHandlerRegistry.getUnkownTypeHandler(); //BUG 1012591 - typeHandlerRegistry.getTypeHandler(java.lang.Object.class, jdbcType);
       } else {
         try {
-          javaType = typeAliasRegistry.resolveAlias(javaType);
-          Class javaClass = Resources.classForName(javaType);
+          Class javaClass = typeAliasRegistry.resolveAlias(javaType);
           handler = typeHandlerRegistry.getTypeHandler(javaClass, jdbcType);
         } catch (Exception e) {
           throw new SqlMapException("Error.  Could not set TypeHandler.  Cause: " + e, e);
@@ -224,8 +221,7 @@
 
       } else {
         try {
-          javaType = typeAliasRegistry.resolveAlias(javaType);
-          Class javaClass = Resources.classForName(javaType);
+          Class javaClass = typeAliasRegistry.resolveAlias(javaType);
           handler = typeHandlerRegistry.getTypeHandler(javaClass, jdbcType);
         } catch (Exception e) {
           throw new SqlMapException("Error.  Could not set TypeHandler.  Cause: " + e, e);

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapConfigParser.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapConfigParser.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapConfigParser.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapConfigParser.java Sat Dec  5 15:41:48 2009
@@ -136,13 +136,10 @@
     String javaType = context.getStringAttribute("javaType");
     String callback = context.getStringAttribute("callback");
 
-    javaType = config.getTypeAliasRegistry().resolveAlias(javaType);
-    callback = config.getTypeAliasRegistry().resolveAlias(callback);
-
     if (javaType != null && callback != null) {
       JdbcType jdbcTypeEnum = JdbcType.valueOf(jdbcType);
-      Class javaTypeClass = Resources.classForName(javaType);
-      Class callbackClass = Resources.classForName(callback);
+      Class javaTypeClass = config.getTypeAliasRegistry().resolveAlias(javaType);
+      Class callbackClass = config.getTypeAliasRegistry().resolveAlias(callback);
       Object o = callbackClass.newInstance();
       if (o instanceof TypeHandlerCallback) {
         TypeHandler typeHandler = new TypeHandlerCallbackAdapter((TypeHandlerCallback) o);
@@ -154,8 +151,7 @@
   @NodeEvent("/sqlMapConfig/transactionManager/end()")
   public void sqlMapConfigtransactionManagerend(XNode context) throws Exception {
     String type = context.getStringAttribute("type");
-    type = config.getTypeAliasRegistry().resolveAlias(type);
-    Class txClass = Class.forName(type);
+    Class txClass = config.getTypeAliasRegistry().resolveAlias(type);
     boolean commitRequired = context.getBooleanAttribute("commitRequired", false);
 
     TransactionConfig txConfig = (TransactionConfig) txClass.newInstance();
@@ -182,8 +178,7 @@
   @NodeEvent("/sqlMapConfig/transactionManager/dataSource/end()")
   public void sqlMapConfigtransactionManagerdataSourceend(XNode context) throws Exception {
     String type = context.getStringAttribute("type");
-    type = config.getTypeAliasRegistry().resolveAlias(type);
-    Class dataSourceClass = Class.forName(type);
+    Class dataSourceClass = config.getTypeAliasRegistry().resolveAlias(type);
     DataSourceFactory dsFactory = (DataSourceFactory) dataSourceClass.newInstance();
     dsFactory.initialize(dataSourceProps);
     config.setDataSource(dsFactory.getDataSource());

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapParser.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapParser.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapParser.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlMapParser.java Sat Dec  5 15:41:48 2009
@@ -83,8 +83,7 @@
     String type = context.getStringAttribute("type");
     Boolean readOnly = context.getBooleanAttribute("readOnly", true);
     Boolean serialize = context.getBooleanAttribute("serialize", true);
-    type = config.getTypeAliasRegistry().resolveAlias(type);
-    Class clazz = Resources.classForName(type);
+    Class clazz = config.getTypeAliasRegistry().resolveAlias(type);
     cacheBuilder = new CacheBuilder(id);
     cacheBuilder.addDecorator(clazz);
 
@@ -168,10 +167,9 @@
       groupByProperties = Arrays.asList(groupBy.split(", "));
     }
 
-    resultClassName = config.getTypeAliasRegistry().resolveAlias(resultClassName);
     Class resultClass;
     try {
-      resultClass = Resources.classForName(resultClassName);
+      resultClass = config.getTypeAliasRegistry().resolveAlias(resultClassName);
     } catch (Exception e) {
       throw new RuntimeException("Error configuring Result.  Could not set ResultClass.  Cause: " + e, e);
     }
@@ -207,11 +205,10 @@
 
     Class javaClass = null;
     try {
-      javaType = config.getTypeAliasRegistry().resolveAlias(javaType);
       if (javaType != null && javaType.length() > 0) {
-        javaClass = Resources.classForName(javaType);
+        javaClass = config.getTypeAliasRegistry().resolveAlias(javaType);
       }
-    } catch (ClassNotFoundException e) {
+    } catch (Exception e) {
       throw new RuntimeException("Error setting java type on result discriminator mapping.  Cause: " + e);
     }
 
@@ -226,8 +223,7 @@
     }
     try {
       if (callback != null && callback.length() > 0) {
-        callback = config.getTypeAliasRegistry().resolveAlias(callback);
-        typeHandler = (TypeHandler) Resources.classForName(callback).newInstance();
+        typeHandler = (TypeHandler) config.getTypeAliasRegistry().resolveAlias(callback).newInstance();
       }
     } catch (Exception e) {
       throw new RuntimeException("Error occurred during custom type handler configuration.  Cause: " + e, e);
@@ -280,11 +276,10 @@
 
     Class javaClass = null;
     try {
-      javaType = config.getTypeAliasRegistry().resolveAlias(javaType);
       if (javaType != null && javaType.length() > 0) {
-        javaClass = Resources.classForName(javaType);
+        javaClass = config.getTypeAliasRegistry().resolveAlias(javaType);
       }
-    } catch (ClassNotFoundException e) {
+    } catch (Exception e) {
       throw new RuntimeException("Error setting java type on result discriminator mapping.  Cause: " + e);
     }
     if (javaClass == null
@@ -307,8 +302,7 @@
     }
     try {
       if (callback != null && callback.length() > 0) {
-        callback = config.getTypeAliasRegistry().resolveAlias(callback);
-        Object o = Resources.classForName(callback).newInstance();
+        Object o = config.getTypeAliasRegistry().resolveAlias(callback).newInstance();
         if (o instanceof TypeHandlerCallback) {
           typeHandler = new TypeHandlerCallbackAdapter((TypeHandlerCallback) o);
         }
@@ -383,8 +377,7 @@
   public void sqlMapparameterMap(XNode context) throws Exception {
     String id = applyNamespace(context.getStringAttribute("id"));
     String parameterClassName = context.getStringAttribute("class");
-    parameterClassName = config.getTypeAliasRegistry().resolveAlias(parameterClassName);
-    Class parameterClass = Resources.classForName(parameterClassName);
+    Class parameterClass = config.getTypeAliasRegistry().resolveAlias(parameterClassName);
     parameterMappingList = new ArrayList<ParameterMapping>();
     parameterMapBuilder = new ParameterMap.Builder(config, id, parameterClass, parameterMappingList);
   }
@@ -404,13 +397,12 @@
     String callback = context.getStringAttribute("typeHandler");
     String numericScaleProp = context.getStringAttribute("numericScale");
 
-    javaType = config.getTypeAliasRegistry().resolveAlias(javaType);
     Class javaClass = null;
     try {
       if (javaType != null && javaType.length() > 0) {
-        javaClass = Resources.classForName(javaType);
+        javaClass = config.getTypeAliasRegistry().resolveAlias(javaType);
       }
-    } catch (ClassNotFoundException e) {
+    } catch (Exception e) {
       throw new RuntimeException("Error setting javaType on parameter mapping.  Cause: " + e);
     }
 
@@ -419,13 +411,12 @@
       jdbcTypeEnum = JdbcType.valueOf(jdbcType);
     }
 
-    callback = config.getTypeAliasRegistry().resolveAlias(callback);
     TypeHandler typeHandler = null;
     if (javaClass != null) {
       typeHandler = config.getTypeHandlerRegistry().getTypeHandler(javaClass, jdbcTypeEnum);
     }
     if (callback != null) {
-      Object o = Resources.classForName(callback).newInstance();
+      Object o = config.getTypeAliasRegistry().resolveAlias(callback).newInstance();
       if (o instanceof TypeHandlerCallback) {
         typeHandler = new TypeHandlerCallbackAdapter((TypeHandlerCallback) o);
       }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlStatementParser.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlStatementParser.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlStatementParser.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/builder/XmlSqlStatementParser.java Sat Dec  5 15:41:48 2009
@@ -151,12 +151,11 @@
   private Class resolveClass(String resultClassName) {
     try {
       if (resultClassName != null) {
-        String name = configuration.getTypeAliasRegistry().resolveAlias(resultClassName);
-        return Resources.classForName(name);
+        return configuration.getTypeAliasRegistry().resolveAlias(resultClassName);
       } else {
         return null;
       }
-    } catch (ClassNotFoundException e) {
+    } catch (Exception e) {
       throw new SqlMapException("Error.  Could not initialize class.  Cause: " + e, e);
     }
   }
@@ -208,8 +207,7 @@
     final String keyStatementId = SqlMapSessionImpl.selectKeyIdFor(parentId);
     TypeHandler typeHandler = configuration.getTypeHandlerRegistry().getUnkownTypeHandler();
     if (resultClassName != null) {
-      resultClassName = configuration.getTypeAliasRegistry().resolveAlias(resultClassName);
-      final Class resultClass = Resources.classForName(resultClassName);
+      final Class resultClass = configuration.getTypeAliasRegistry().resolveAlias(resultClassName);
       typeHandler = configuration.getTypeHandlerRegistry().getTypeHandler(resultClass);
     }
 

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/BaseBuilder.java Sat Dec  5 15:41:48 2009
@@ -47,7 +47,7 @@
   protected ResultSetType resolveResultSetType(String alias) {
     if (alias == null) return null;
     try {
-      return ResultSetType.valueOf(resolveAlias(alias));
+      return ResultSetType.valueOf(resolveAlias(alias).getName());
     } catch (IllegalArgumentException e) {
       throw new BuilderException("Error resolving ResultSetType. Cause: " + e, e);
     }
@@ -56,7 +56,7 @@
   protected ParameterMode resolveParameterMode(String alias) {
     if (alias == null) return null;
     try {
-      return ParameterMode.valueOf(resolveAlias(alias));
+      return ParameterMode.valueOf(resolveAlias(alias).getName());
     } catch (IllegalArgumentException e) {
       throw new BuilderException("Error resolving ParameterMode. Cause: " + e, e);
     }
@@ -65,8 +65,8 @@
   protected Class resolveClass(String alias) {
     if (alias == null) return null;
     try {
-      return Resources.classForName(resolveAlias(alias));
-    } catch (ClassNotFoundException e) {
+      return resolveAlias(alias);
+    } catch (Exception e) {
       throw new BuilderException("Error resolving class . Cause: " + e, e);
     }
   }
@@ -90,7 +90,7 @@
     }
   }
 
-  protected String resolveAlias(String alias) {
+  protected Class resolveAlias(String alias) {
     return typeAliasRegistry.resolveAlias(alias);
   }
 }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/builder/xml/XMLMapperBuilder.java Sat Dec  5 15:41:48 2009
@@ -70,11 +70,9 @@
   private void cacheElement(XNode context) throws Exception {
     if (context != null) {
       String type = context.getStringAttribute("type", "PERPETUAL");
-      type = typeAliasRegistry.resolveAlias(type);
-      Class typeClass = Resources.classForName(type);
+      Class typeClass = typeAliasRegistry.resolveAlias(type);
       String eviction = context.getStringAttribute("eviction", "LRU");
-      eviction = typeAliasRegistry.resolveAlias(eviction);
-      Class evictionClass = Resources.classForName(eviction);
+      Class evictionClass = typeAliasRegistry.resolveAlias(eviction);
       Long flushInterval = context.getLongAttribute("flushInterval");
       Integer size = context.getIntAttribute("size");
       boolean readOnly = context.getBooleanAttribute("readOnly", false);

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/TypeAliasRegistry.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/TypeAliasRegistry.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/TypeAliasRegistry.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/main/java/org/apache/ibatis/type/TypeAliasRegistry.java Sat Dec  5 15:41:48 2009
@@ -1,59 +1,84 @@
 package org.apache.ibatis.type;
 
+import org.apache.ibatis.io.Resources;
+
 import java.math.BigDecimal;
 import java.util.*;
 
 public class TypeAliasRegistry {
 
-  private final HashMap<String, String> TYPE_ALIASES = new HashMap<String, String>();
+  private final HashMap<String, Class> TYPE_ALIASES = new HashMap<String, Class>();
 
   public TypeAliasRegistry() {
-    registerAlias("string", String.class.getName());
-    registerAlias("byte", Byte.class.getName());
-    registerAlias("long", Long.class.getName());
-    registerAlias("short", Short.class.getName());
-    registerAlias("int", Integer.class.getName());
-    registerAlias("integer", Integer.class.getName());
-    registerAlias("double", Double.class.getName());
-    registerAlias("float", Float.class.getName());
-    registerAlias("boolean", Boolean.class.getName());
-    registerAlias("date", Date.class.getName());
-    registerAlias("decimal", BigDecimal.class.getName());
-    registerAlias("bigdecimal", BigDecimal.class.getName());
-    registerAlias("object", Object.class.getName());
-    registerAlias("map", Map.class.getName());
-    registerAlias("hashmap", HashMap.class.getName());
-    registerAlias("list", List.class.getName());
-    registerAlias("arraylist", ArrayList.class.getName());
-    registerAlias("collection", Collection.class.getName());
-    registerAlias("iterator", Iterator.class.getName());
+    registerAlias("string", String.class);
+
+    registerAlias("byte", Byte.class);
+    registerAlias("long", Long.class);
+    registerAlias("short", Short.class);
+    registerAlias("int", Integer.class);
+    registerAlias("integer", Integer.class);
+    registerAlias("double", Double.class);
+    registerAlias("float", Float.class);
+    registerAlias("boolean", Boolean.class);
+
+    registerAlias("_byte", byte.class);
+    registerAlias("_long", long.class);
+    registerAlias("_short", short.class);
+    registerAlias("_int", int.class);
+    registerAlias("_integer", int.class);
+    registerAlias("_double", double.class);
+    registerAlias("_float", float.class);
+    registerAlias("_boolean", boolean.class);
+
+    registerAlias("date", Date.class);
+    registerAlias("decimal", BigDecimal.class);
+    registerAlias("bigdecimal", BigDecimal.class);
+    registerAlias("object", Object.class);
+    registerAlias("map", Map.class);
+    registerAlias("hashmap", HashMap.class);
+    registerAlias("list", List.class);
+    registerAlias("arraylist", ArrayList.class);
+    registerAlias("collection", Collection.class);
+    registerAlias("iterator", Iterator.class);
   }
 
-  public String resolveAlias(String string) {
-    if (string == null) return null;
-    String key = string.toLowerCase();
-    String value = string;
-    if (TYPE_ALIASES.containsKey(key)) {
-      value = TYPE_ALIASES.get(key);
+  public Class resolveAlias(String string) {
+    try {
+      if (string == null) return null;
+      String key = string.toLowerCase();
+      Class value;
+      if (TYPE_ALIASES.containsKey(key)) {
+        value = TYPE_ALIASES.get(key);
+      } else {
+        value = Resources.classForName(string);
+      }
+      return value;
+    } catch (ClassNotFoundException e) {
+      throw new TypeException("Could not resolve type alias '" +string+ "'.  Cause: " + e, e);
     }
-    return value;
   }
 
   public void registerAlias(Class type) {
     registerAlias(type.getSimpleName(), type.getName());
   }
 
-  public void registerAlias(String alias, Class type) {
-    registerAlias(alias, type.getName());
-  }
-
-  public void registerAlias(String alias, String value) {
+  public void registerAlias(String alias, Class value) {
     assert alias != null;
     String key = alias.toLowerCase();
-    if (TYPE_ALIASES.containsKey(key) && !TYPE_ALIASES.get(key).equals(value) && TYPE_ALIASES.get(alias) != null) {
-      throw new TypeException("The alias '" + alias + "' is already mapped to the value '" + TYPE_ALIASES.get(alias) + "'.");
+    if (TYPE_ALIASES.containsKey(key) && !TYPE_ALIASES.get(key).equals(value.getName()) && TYPE_ALIASES.get(alias) != null) {
+      if (!value.equals(TYPE_ALIASES.get(alias))) {
+        throw new TypeException("The alias '" + alias + "' is already mapped to the value '" + TYPE_ALIASES.get(alias).getName() + "'.");
+      }
     }
     TYPE_ALIASES.put(key, value);
   }
 
+  public void registerAlias(String alias, String value) {
+    try {
+      registerAlias(alias, Resources.classForName(value));
+    } catch (ClassNotFoundException e) {
+      throw new TypeException("Error registering type alias "+alias+" for "+value+". Cause: " + e, e);
+    }
+  }
+
 }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/Author.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/Author.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/Author.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/Author.java Sat Dec  5 15:41:48 2009
@@ -24,7 +24,7 @@
     this.favouriteSection = section;
   }
 
-  public Author(Integer id) {
+  public Author(int id) {
     this(id, null, null, null, null, null);
   }
 

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/ImmutableAuthor.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/ImmutableAuthor.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/ImmutableAuthor.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/domain/blog/ImmutableAuthor.java Sat Dec  5 15:41:48 2009
@@ -10,7 +10,7 @@
   protected final String bio;
   protected final Section favouriteSection;
 
-  public ImmutableAuthor(Integer id, String username, String password, String email, String bio, Section section) {
+  public ImmutableAuthor(int id, String username, String password, String email, String bio, Section section) {
     this.id = id;
     this.username = username;
     this.password = password;

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java Sat Dec  5 15:41:48 2009
@@ -25,7 +25,7 @@
   //======================================================
 
   @ConstructorArgs({
-      @Arg(column = "AUTHOR_ID", javaType = Integer.class)
+      @Arg(column = "AUTHOR_ID", javaType = int.class)
   })
   @Results({
       @Result(property = "username", column = "AUTHOR_USERNAME"),

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/AuthorMapper.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/AuthorMapper.xml?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/AuthorMapper.xml (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/builder/AuthorMapper.xml Sat Dec  5 15:41:48 2009
@@ -22,7 +22,7 @@
 
   <resultMap id="selectImmutableAuthor" type="domain.blog.ImmutableAuthor">
     <constructor>
-      <idArg column="id" javaType="int"/>
+      <idArg column="id" javaType="_int"/>
       <arg column="username" javaType="string"/>
       <arg column="password" javaType="string"/>
       <arg column="email" javaType="string"/>

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ExecutorTestHelper.java Sat Dec  5 15:41:48 2009
@@ -179,7 +179,7 @@
           {
             add(new ResultMap.Builder(config, "defaultResultMap", Author.class, new ArrayList<ResultMapping>() {
               {
-                add(new ResultMapping.Builder(config, null, "id", registry.getTypeHandler(Integer.class)).javaType(Integer.class).flags(new ArrayList<ResultFlag>() {
+                add(new ResultMapping.Builder(config, null, "id", registry.getTypeHandler(Integer.class)).javaType(int.class).flags(new ArrayList<ResultFlag>() {
                   {
                     add(ResultFlag.CONSTRUCTOR);
                   }

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/initialized_collection_property/ibatis-config.xml Sat Dec  5 15:41:48 2009
@@ -16,7 +16,7 @@
       </transactionManager>
       <dataSource type="UNPOOLED">
         <property name="driver" value="org.hsqldb.jdbcDriver"/>
-        <property name="url" value="jdbc:hsqldb:mem:cname"/>
+        <property name="url" value="jdbc:hsqldb:mem:initcoll"/>
         <property name="username" value="sa"/>
       </dataSource>
     </environment>

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/MapperConfig.xml Sat Dec  5 15:41:48 2009
@@ -16,7 +16,7 @@
       </transactionManager>
       <dataSource type="UNPOOLED">
         <property name="driver" value="org.hsqldb.jdbcDriver"/>
-        <property name="url" value="jdbc:hsqldb:mem:cname"/>
+        <property name="url" value="jdbc:hsqldb:mem:nested"/>
         <property name="username" value="sa"/>
       </dataSource>
     </environment>

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/nested/NestedForEachTest.java Sat Dec  5 15:41:48 2009
@@ -26,7 +26,7 @@
 
     try {
       Class.forName("org.hsqldb.jdbcDriver");
-      conn = DriverManager.getConnection("jdbc:hsqldb:mem:cname", "sa",
+      conn = DriverManager.getConnection("jdbc:hsqldb:mem:nested", "sa",
           "");
 
       Reader reader = Resources.getResourceAsReader("org/apache/ibatis/submitted/nested/CreateDB.sql");

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/null_associations/sqlmap.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/null_associations/sqlmap.xml?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/null_associations/sqlmap.xml (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/null_associations/sqlmap.xml Sat Dec  5 15:41:48 2009
@@ -19,7 +19,7 @@
       </transactionManager>
       <dataSource type="UNPOOLED">
         <property name="driver" value="org.hsqldb.jdbcDriver"/>
-        <property name="url" value="jdbc:hsqldb:mem:cname"/>
+        <property name="url" value="jdbc:hsqldb:mem:nullassoc"/>
         <property name="username" value="sa"/>
       </dataSource>
     </environment>

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/submitted/overwritingproperties/sqlmap.xml Sat Dec  5 15:41:48 2009
@@ -22,7 +22,7 @@
       </transactionManager>
       <dataSource type="POOLED">
         <property name="driver" value="org.hsqldb.jdbcDriver"/>
-        <property name="url" value="jdbc:hsqldb:mem:cname"/>
+        <property name="url" value="jdbc:hsqldb:mem:overprops"/>
         <property name="username" value="sa"/>
       </dataSource>
     </environment>

Modified: ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/type/TypeAliasRegistryTest.java
URL: http://svn.apache.org/viewvc/ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/type/TypeAliasRegistryTest.java?rev=887555&r1=887554&r2=887555&view=diff
==============================================================================
--- ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/type/TypeAliasRegistryTest.java (original)
+++ ibatis/java/ibatis-3/trunk/ibatis-3-core/src/test/java/org/apache/ibatis/type/TypeAliasRegistryTest.java Sat Dec  5 15:41:48 2009
@@ -11,8 +11,7 @@
 
     typeAliasRegistry.registerAlias("rich", "domain.misc.RichType");
 
-    assertEquals("domain.misc.RichType", typeAliasRegistry.resolveAlias("rich"));
-    assertEquals("unknown", typeAliasRegistry.resolveAlias("unknown"));
+    assertEquals("domain.misc.RichType", typeAliasRegistry.resolveAlias("rich").getName());
   }
 
 }