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>