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());
}
}