Return-Path: Delivered-To: apmail-ibatis-commits-archive@www.apache.org Received: (qmail 34574 invoked from network); 22 Feb 2009 18:49:00 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Feb 2009 18:49:00 -0000 Received: (qmail 61945 invoked by uid 500); 22 Feb 2009 18:49:00 -0000 Delivered-To: apmail-ibatis-commits-archive@ibatis.apache.org Received: (qmail 61927 invoked by uid 500); 22 Feb 2009 18:49:00 -0000 Mailing-List: contact commits-help@ibatis.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@ibatis.apache.org Delivered-To: mailing list commits@ibatis.apache.org Received: (qmail 61918 invoked by uid 99); 22 Feb 2009 18:48:59 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Feb 2009 10:48:59 -0800 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Sun, 22 Feb 2009 18:48:59 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 1422F2388995; Sun, 22 Feb 2009 18:48:39 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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/ Date: Sun, 22 Feb 2009 18:48:38 -0000 To: commits@ibatis.apache.org From: cbegin@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090222184839.1422F2388995@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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() {{ 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 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);