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/01/26 10:27:10 UTC
svn commit: r737657 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src:
main/java/org/apache/ibatis/mapping/ main/java/org/apache/ibatis/parser/
test/java/org/apache/ibatis/api/ test/java/org/apache/ibatis/parser/
Author: cbegin
Date: Mon Jan 26 09:27:09 2009
New Revision: 737657
URL: http://svn.apache.org/viewvc?rev=737657&view=rev
Log:
Added initial caching tests.
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ibatis-mapper-3.dtd
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java?rev=737657&r1=737656&r2=737657&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/mapping/Configuration.java Mon Jan 26 09:27:09 2009
@@ -1,6 +1,11 @@
package org.apache.ibatis.mapping;
import org.apache.ibatis.cache.Cache;
+import org.apache.ibatis.cache.decorators.FifoCache;
+import org.apache.ibatis.cache.decorators.LruCache;
+import org.apache.ibatis.cache.decorators.WeakCache;
+import org.apache.ibatis.cache.decorators.SoftCache;
+import org.apache.ibatis.cache.impl.PerpetualCache;
import org.apache.ibatis.datasource.jndi.JndiDataSourceFactory;
import org.apache.ibatis.datasource.pooled.PooledDataSourceFactory;
import org.apache.ibatis.datasource.unpooled.UnpooledDataSourceFactory;
@@ -57,6 +62,12 @@
typeAliasRegistry.registerAlias("JNDI", JndiDataSourceFactory.class.getName());
typeAliasRegistry.registerAlias("POOLED", PooledDataSourceFactory.class.getName());
typeAliasRegistry.registerAlias("UNPOOLED", UnpooledDataSourceFactory.class.getName());
+
+ typeAliasRegistry.registerAlias("PERPETUAL", PerpetualCache.class.getName());
+ typeAliasRegistry.registerAlias("FIFO", FifoCache.class.getName());
+ typeAliasRegistry.registerAlias("LRU", LruCache.class.getName());
+ typeAliasRegistry.registerAlias("SOFT", SoftCache.class.getName());
+ typeAliasRegistry.registerAlias("WEAK", WeakCache.class.getName());
}
public Environment getEnvironment() {
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ibatis-mapper-3.dtd
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ibatis-mapper-3.dtd?rev=737657&r1=737656&r2=737657&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ibatis-mapper-3.dtd (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/parser/ibatis-mapper-3.dtd Mon Jan 26 09:27:09 2009
@@ -13,11 +13,11 @@
<!ELEMENT cache (property*)>
<!ATTLIST cache
-type CDATA #REQUIRED
-eviction CDATA #REQUIRED
-flushInterval CDATA #REQUIRED
-size CDATA #REQUIRED
-readOnly CDATA #REQUIRED
+type CDATA #IMPLIED
+eviction CDATA #IMPLIED
+flushInterval CDATA #IMPLIED
+size CDATA #IMPLIED
+readOnly CDATA #IMPLIED
>
<!ELEMENT parameterMap (parameter+)?>
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java?rev=737657&r1=737656&r2=737657&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/SqlSessionTest.java Mon Jan 26 09:27:09 2009
@@ -244,4 +244,47 @@
}
}
+ @Test
+ public void shouldCacheAllAuthors() throws Exception {
+ int first = -1;
+ int second = -1;
+ SqlSession session = sqlMapper.openSession();
+ try {
+ List<Author> authors = session.selectList("com.domain.CachedAuthorMapper.selectAllAuthors");
+ first = System.identityHashCode(authors);
+ session.commit(); // commit should not be required for read/only activity.
+ } finally {
+ session.close();
+ }
+ session = sqlMapper.openSession();
+ try {
+ List<Author> authors = session.selectList("com.domain.CachedAuthorMapper.selectAllAuthors");
+ second = System.identityHashCode(authors);
+ } finally {
+ session.close();
+ }
+ assertEquals (first, second);
+ }
+
+ @Test
+ public void shouldNotCacheAllAuthors() throws Exception {
+ int first = -1;
+ int second = -1;
+ SqlSession session = sqlMapper.openSession();
+ try {
+ List<Author> authors = session.selectList("com.domain.AuthorMapper.selectAllAuthors");
+ first = System.identityHashCode(authors);
+ } finally {
+ session.close();
+ }
+ session = sqlMapper.openSession();
+ try {
+ List<Author> authors = session.selectList("com.domain.AuthorMapper.selectAllAuthors");
+ second = System.identityHashCode(authors);
+ } finally {
+ session.close();
+ }
+ assertTrue(first != second);
+ }
+
}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml?rev=737657&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/CachedAuthorMapper.xml Mon Jan 26 09:27:09 2009
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<!DOCTYPE mapper
+ PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN"
+ "http://ibatis.apache.org/dtd/ibatis-mapper-3.dtd">
+
+<mapper namespace="com.domain.CachedAuthorMapper">
+
+ <cache readOnly="true"/>
+
+ <select id="selectAllAuthors"
+ resultType="domain.blog.Author">
+ select * from author
+ </select>
+
+ <select id="selectAuthorWithInlineParams"
+ parameterType="int"
+ resultType="domain.blog.Author">
+ select * from author where id = #{id}
+ </select>
+
+ <insert id="insertAuthor"
+ parameterType="domain.blog.Author">
+ insert into Author (id,username,password,email,bio)
+ values (#{id},#{username},#{password},#{email},#{bio})
+ </insert>
+
+ <update id="updateAuthor"
+ parameterType="domain.blog.Author">
+ update Author
+ set username=#{username},password=#{password},email=#{email},bio=#{bio}
+ where id=#{id}
+ </update>
+
+ <delete id="deleteAuthor"
+ parameterType="int">
+ delete from Author where id = #{id}
+ </delete>
+
+</mapper>
\ No newline at end of file
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml?rev=737657&r1=737656&r2=737657&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml Mon Jan 26 09:27:09 2009
@@ -62,6 +62,7 @@
<!-- mapperXML vs. mapperClass-->
<mapper resource="org/apache/ibatis/parser/AuthorMapper.xml"/>
<mapper resource="org/apache/ibatis/parser/BlogMapper.xml"/>
+ <mapper resource="org/apache/ibatis/parser/CachedAuthorMapper.xml"/>
</mappers>
</configuration>