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/02/22 19:48:38 UTC
svn commit: r746800 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src:
main/java/org/apache/ibatis/binding/ test/java/org/apache/ibatis/binding/
Author: cbegin
Date: Sun Feb 22 18:48:38 2009
New Revision: 746800
URL: http://svn.apache.org/viewvc?rev=746800&view=rev
Log:
CHanging computers... checking in half implemented code... broken test clearly points out which code.
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java?rev=746800&r1=746799&r2=746800&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperRegistry.java Sun Feb 22 18:48:38 2009
@@ -46,14 +46,23 @@
private Cache parseCache(Class type) {
CacheDomain cacheDomain = (CacheDomain) type.getAnnotation(CacheDomain.class);
+ CacheDomainRef cacheDomainRef = (CacheDomainRef) type.getAnnotation(CacheDomainRef.class);
if (cacheDomain != null) {
- CacheBuilder builder = new CacheBuilder(type.getName() + "-Cache");
+ String cacheId = type.getName() + "-BoundCache";
+ CacheBuilder builder = new CacheBuilder(cacheId);
builder.clearInterval(cacheDomain.flushInterval());
builder.size(cacheDomain.size());
builder.readWrite(cacheDomain.readWrite());
builder.implementation(cacheDomain.implementation());
builder.addDecorator(cacheDomain.eviction());
return builder.build();
+ } else if (cacheDomain != null) {
+ String cacheRefId = cacheDomainRef.value().getName();
+ Cache cache = config.getCache(cacheRefId);
+ if (cache == null) {
+ throw new BindingException("No cache exists in namespace "+ cacheRefId + ". Be sure to register the referenced cache namespace first when building mappers.");
+ }
+ return cache;
}
return null;
}
@@ -89,6 +98,10 @@
private void setResultMaps(Method method, final String mappedStatementId, MappedStatement.Builder builder) {
final Class returnType = getReturnType(method);
+
+ Results results = method.getAnnotation(Results.class);
+
+
builder.resultMaps(new ArrayList<ResultMap>() {{
add(new ResultMap.Builder(
config,
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java?rev=746800&r1=746799&r2=746800&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BindingTest.java Sun Feb 22 18:48:38 2009
@@ -4,7 +4,9 @@
import org.apache.ibatis.session.SqlSession;
import org.junit.BeforeClass;
import org.junit.Test;
-import domain.blog.Blog;
+import static org.junit.Assert.*;
+
+import domain.blog.*;
import java.util.List;
@@ -17,12 +19,12 @@
}
@Test
- public void shouldExecuteBoundSelectListStatement() {
+ public void shouldExecuteBoundSelectListOfBlogsStatement() {
SqlSession session = sqlSessionFactory.openSession();
try {
BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
List<Blog> blogs = mapper.selectBlogs();
- System.out.println(blogs.size());
+ assertEquals(2,blogs.size());
} finally {
session.close();
}
@@ -30,16 +32,32 @@
}
@Test
- public void shouldExecuteBoundSelectOneStatement() {
+ public void shouldExecuteBoundSelectOneBlogStatement() {
SqlSession session = sqlSessionFactory.openSession();
try {
BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
- Blog blogs = mapper.selectBlog(1);
- System.out.println(blogs.getId());
+ Blog blog = mapper.selectBlog(1);
+ assertEquals(1,blog.getId());
+ assertEquals("Jim Business",blog.getTitle());
} finally {
session.close();
}
+ }
+ @Test
+ public void shouldSelectOneAuthor() {
+ SqlSession session = sqlSessionFactory.openSession();
+ try {
+ BoundAuthorMapper mapper = session.getMapper(BoundAuthorMapper.class);
+ Author author = mapper.selectAuthor(101);
+ assertEquals(101,author.getId());
+ assertEquals("jim",author.getUsername());
+ assertEquals("********",author.getPassword());
+ assertEquals("jim@ibatis.apache.org",author.getEmail());
+ assertEquals("", author.getBio());
+ } finally {
+ session.close();
+ }
}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java?rev=746800&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundAuthorMapper.java Sun Feb 22 18:48:38 2009
@@ -0,0 +1,25 @@
+package org.apache.ibatis.binding;
+
+import static org.apache.ibatis.annotations.Annotations.*;
+import domain.blog.Author;
+
+public interface BoundAuthorMapper {
+
+ @Results({
+ @Result(property = "id",column = "AUTHOR_ID"),
+ @Result(property = "username",column = "AUTHOR_USERNAME"),
+ @Result(property = "password",column = "AUTHOR_PASSWORD"),
+ @Result(property = "email",column = "AUTHOR_EMAIL"),
+ @Result(property = "bio",column = "AUTHOR_BIO")
+ })
+ @Select({
+ "SELECT ",
+ " ID as AUTHOR_ID,",
+ " USERNAME as AUTHOR_USERNAME,",
+ " PASSWORD as AUTHOR_PASSWORD,",
+ " EMAIL as AUTHOR_EMAIL,",
+ " BIO as AUTHOR_BIO",
+ "FROM AUTHOR WHERE ID = #{id}"})
+ Author selectAuthor(int id);
+
+}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java?rev=746800&r1=746799&r2=746800&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/BoundBlogMapper.java Sun Feb 22 18:48:38 2009
@@ -1,6 +1,6 @@
package org.apache.ibatis.binding;
-import domain.blog.Blog;
+import domain.blog.*;
import static org.apache.ibatis.annotations.Annotations.*;
import java.util.List;
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java?rev=746800&r1=746799&r2=746800&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/binding/IbatisConfig.java Sun Feb 22 18:48:38 2009
@@ -18,6 +18,7 @@
Environment environment = new Environment("Production", transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(BoundBlogMapper.class);
+ configuration.addMapper(BoundAuthorMapper.class);
return new DefaultSqlSessionFactory(configuration);
} catch (Exception e) {
throw new RuntimeException("Error initializing SqlSessionFactory. Cause: " + e, e);