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 05:52:13 UTC

svn commit: r746636 - in /ibatis/trunk/java/ibatis-3: ./ ibatis-3-core/src/main/java/org/apache/ibatis/annotations/ ibatis-3-core/src/main/java/org/apache/ibatis/api/ ibatis-3-core/src/main/java/org/apache/ibatis/binding/ ibatis-3-core/src/main/java/or...

Author: cbegin
Date: Sun Feb 22 04:52:12 2009
New Revision: 746636

URL: http://svn.apache.org/viewvc?rev=746636&view=rev
Log:
added binding test, refactored session package

Added:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/
      - copied from r746572, ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SessionException.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/session/
      - copied from r746572, ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/
Removed:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/ApiException.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/api/
Modified:
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Annotations.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperProxy.java
    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/main/java/org/apache/ibatis/mapping/Configuration.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactoryBuilder.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.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
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
    ibatis/trunk/java/ibatis-3/version.properties

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Annotations.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Annotations.java?rev=746636&r1=746635&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Annotations.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/annotations/Annotations.java Sun Feb 22 04:52:12 2009
@@ -3,6 +3,8 @@
 import org.apache.ibatis.cache.decorators.LruCache;
 import org.apache.ibatis.cache.impl.PerpetualCache;
 import org.apache.ibatis.type.JdbcType;
+import org.apache.ibatis.mapping.ResultSetType;
+import org.apache.ibatis.mapping.StatementType;
 
 import java.lang.annotation.*;
 
@@ -47,18 +49,18 @@
 
   @Retention(RetentionPolicy.RUNTIME)
   @Target(ElementType.TYPE)
-  public static @interface Cache {
-    Class<? extends org.apache.ibatis.cache.Cache> type() default PerpetualCache.class;
+  public static @interface CacheDomain {
+    Class<? extends org.apache.ibatis.cache.Cache> implementation() default PerpetualCache.class;
     Class<? extends org.apache.ibatis.cache.Cache> eviction() default LruCache.class;
-    int flushInterval() default 3600000;
+    long flushInterval() default 3600000;
     int size() default 1000;
-    boolean readOnly() default false;
+    boolean readWrite() default true;
   }
 
   @Retention(RetentionPolicy.RUNTIME)
   @Target(ElementType.TYPE)
-  public @interface CacheRefNamespace {
-    String[] value();
+  public @interface CacheDomainRef {
+    Class value();
   }
 
   @Retention(RetentionPolicy.RUNTIME)
@@ -97,4 +99,15 @@
     String[] value();
   }
 
+  @Retention(RetentionPolicy.RUNTIME)
+  @Target(ElementType.METHOD)
+  public @interface Options {
+    boolean useCache() default true;
+    boolean flushCache() default false;
+    ResultSetType resultSetType() default ResultSetType.FORWARD_ONLY;
+    StatementType statementType() default StatementType.PREPARED;
+    int fetchSize() default -1;
+    int timeout() default -1;
+  }
+
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java?rev=746636&r1=746635&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperMethod.java Sun Feb 22 04:52:12 2009
@@ -1,6 +1,6 @@
 package org.apache.ibatis.binding;
 
-import org.apache.ibatis.api.SqlSession;
+import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.mapping.Configuration;
 import org.apache.ibatis.executor.Executor;
 

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperProxy.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperProxy.java?rev=746636&r1=746635&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperProxy.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/binding/MapperProxy.java Sun Feb 22 04:52:12 2009
@@ -4,7 +4,7 @@
 import java.lang.reflect.Method;
 import java.lang.reflect.Proxy;
 
-import org.apache.ibatis.api.SqlSession;
+import org.apache.ibatis.session.SqlSession;
 
 public class MapperProxy implements InvocationHandler {
 

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=746636&r1=746635&r2=746636&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 04:52:12 2009
@@ -1,11 +1,19 @@
 package org.apache.ibatis.binding;
 
-import org.apache.ibatis.api.SqlSession;
-import static org.apache.ibatis.annotations.Annotations.*;
+import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.mapping.*;
+import static org.apache.ibatis.annotations.Annotations.*;
+import org.apache.ibatis.reflection.MetaObject;
+import org.apache.ibatis.cache.Cache;
+import org.apache.ibatis.parser.InlineSqlSource;
+import org.apache.ibatis.parser.SqlSourceParser;
+import org.apache.ibatis.xml.GenericTokenParser;
 
 import java.util.*;
 import java.lang.reflect.Method;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.TypeVariable;
+import java.lang.annotation.Annotation;
 
 public class MapperRegistry {
 
@@ -17,7 +25,8 @@
   }
 
   public <T> T getMapper(Class<T> type, SqlSession sqlSession) {
-    if (!knownMappers.contains(type)) throw new BindingException("Type " + type + " is not known to the MapperRegistry.");
+    if (!knownMappers.contains(type))
+      throw new BindingException("Type " + type + " is not known to the MapperRegistry.");
     try {
       return MapperProxy.newMapperProxy(type, sqlSession);
     } catch (Exception e) {
@@ -26,13 +35,108 @@
   }
 
   public void addMapper(Class type) {
-    if (!type.isInterface()) throw new BindingException("Only interfaces can be configured by the MapperFactory.  Type " + type + " is not an interface.");
-    if (knownMappers.contains(type)) throw new BindingException("Type " + type + " is already known to the MapperRegistry.");
+    if (!type.isInterface())
+      throw new BindingException("Only interfaces can be configured by the MapperFactory.  Type " + type + " is not an interface.");
+    if (knownMappers.contains(type))
+      throw new BindingException("Type " + type + " is already known to the MapperRegistry.");
     knownMappers.add(type);
     parseAnnotations(type);
   }
 
   public void parseAnnotations(Class type) {
+    Cache cache = parseCache(type);
+    parseMethodAnnotations(cache,type);
+  }
+
+  private Cache parseCache(Class type) {
+    CacheDomain cacheDomain = (CacheDomain) type.getAnnotation(CacheDomain.class);
+    if (cacheDomain != null) {
+      CacheBuilder builder = new CacheBuilder(type.getName() + "-Cache");
+      builder.clearInterval(cacheDomain.flushInterval());
+      builder.size(cacheDomain.size());
+      builder.readWrite(cacheDomain.readWrite());
+      builder.implementation(cacheDomain.implementation());
+      builder.addDecorator(cacheDomain.eviction());
+      return builder.build();
+    }
+    return null;
+  }
+
+  private void parseMethodAnnotations(Cache cache, Class type) {
+    Method[] methods = type.getMethods();
+    for (Method method : methods) {
+      MappedStatement statement = parseMappedStatement(method, cache);
+      if (statement != null) {
+      config.addMappedStatement(statement);
+      }
+    }
+  }
+
+  private MappedStatement parseMappedStatement(Method method, Cache cache) {
+    Class annotationType = getSqlAnnotationType(method);
+    if (annotationType != null) {
+    String sql = getSqlAnnotationValue(method, annotationType);
+    String mappedStatementId = method.getDeclaringClass().getName() + "." + method.getName();
+    SqlSource sqlSource = new BasicSqlSource(sql);
+    MappedStatement.Builder builder = new MappedStatement.Builder(config, mappedStatementId, sqlSource);
+    builder.resource(method.getDeclaringClass().getName().replace('.', '/') + ".java (best guess)");
+
+    Options options = method.getAnnotation(Options.class);
+    if (options != null) {
+      builder.useCache(options.useCache());
+      builder.flushCacheRequired(options.flushCache());
+      builder.resultSetType(options.resultSetType());
+      builder.statementType(options.statementType());
+      builder.fetchSize(options.fetchSize());
+      builder.timeout(options.timeout());
+    }
+
+    builder.cache(cache);
+
+    Class returnType = method.getReturnType();
+    if (returnType.isAssignableFrom(Collection.class)) {
+      TypeVariable<? extends Class<?>>[] returnTypeVariables = returnType.getTypeParameters();
+      if (returnTypeVariables.length == 1) {
+        returnType = returnTypeVariables[0].getGenericDeclaration();
+      }
+    }
+
+    builder.parameterMap(new ParameterMap.Builder(config,"",Object.class,new ArrayList<ParameterMapping>()).build());
+    final ResultMap resultMap = new ResultMap.Builder(config, "", returnType, new ArrayList<ResultMapping>()).build();
+    builder.resultMaps(new ArrayList<ResultMap>() {{ add(resultMap); }});
+
+    return builder.build();
+    }
+    return null;
+  }
+
+  private String getSqlAnnotationValue(Method method, Class annotationType) {
+    Annotation annotation = method.getAnnotation(annotationType);
+    if (annotation != null) {
+      try {
+        String[] strings = (String[]) annotation.getClass().getMethod("value").invoke(annotation);
+        StringBuilder sql = new StringBuilder();
+        for(String fragment : strings) {
+          sql.append(fragment);
+          sql.append(" ");
+        }
+        return sql.toString();
+      } catch (Exception e) {
+        throw new RuntimeException("Could not find value method on SQL annotation.  Cause: " + e, e);
+      }
+    }
+    throw new BindingException("Reuested value from annotation that does not exist: " + annotationType);
+  }
+
+  private Class getSqlAnnotationType(Method method) {
+    Class[] types = {Select.class, Insert.class, Update.class, Delete.class, Procedure.class, Statement.class};
+    for (Class type : types) {
+      Annotation annotation = method.getAnnotation(type);
+      if (annotation != null) {
+        return type;
+      }
+    }
+    return null;
   }
 
 }

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=746636&r1=746635&r2=746636&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 Sun Feb 22 04:52:12 2009
@@ -27,7 +27,7 @@
 import org.apache.ibatis.type.TypeAliasRegistry;
 import org.apache.ibatis.type.TypeHandlerRegistry;
 import org.apache.ibatis.binding.MapperRegistry;
-import org.apache.ibatis.api.SqlSession;
+import org.apache.ibatis.session.SqlSession;
 
 import java.util.Collection;
 import java.util.HashMap;

Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SessionException.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SessionException.java?rev=746636&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SessionException.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SessionException.java Sun Feb 22 04:52:12 2009
@@ -0,0 +1,20 @@
+package org.apache.ibatis.session;
+
+public class SessionException extends RuntimeException {
+
+  public SessionException() {
+    super();
+  }
+
+  public SessionException(String message) {
+    super(message);
+  }
+
+  public SessionException(String message, Throwable cause) {
+    super(message, cause);
+  }
+
+  public SessionException(Throwable cause) {
+    super(cause);
+  }
+}

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java?rev=746636&r1=746572&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSession.java Sun Feb 22 04:52:12 2009
@@ -1,4 +1,4 @@
-package org.apache.ibatis.api;
+package org.apache.ibatis.session;
 
 import org.apache.ibatis.executor.result.ResultHandler;
 import org.apache.ibatis.mapping.Configuration;

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java?rev=746636&r1=746572&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactory.java Sun Feb 22 04:52:12 2009
@@ -1,4 +1,4 @@
-package org.apache.ibatis.api;
+package org.apache.ibatis.session;
 
 import org.apache.ibatis.mapping.Configuration;
 import org.apache.ibatis.mapping.ExecutorType;

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactoryBuilder.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactoryBuilder.java?rev=746636&r1=746572&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactoryBuilder.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/SqlSessionFactoryBuilder.java Sun Feb 22 04:52:12 2009
@@ -1,6 +1,6 @@
-package org.apache.ibatis.api;
+package org.apache.ibatis.session;
 
-import org.apache.ibatis.api.defaults.DefaultSqlSessionFactory;
+import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
 import org.apache.ibatis.exceptions.ExceptionFactory;
 import org.apache.ibatis.mapping.Configuration;
 import org.apache.ibatis.parser.MapperConfigParser;

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java?rev=746636&r1=746572&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSession.java Sun Feb 22 04:52:12 2009
@@ -1,7 +1,7 @@
-package org.apache.ibatis.api.defaults;
+package org.apache.ibatis.session.defaults;
 
-import org.apache.ibatis.api.ApiException;
-import org.apache.ibatis.api.SqlSession;
+import org.apache.ibatis.session.SessionException;
+import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.exceptions.ExceptionFactory;
 import org.apache.ibatis.executor.Executor;
 import org.apache.ibatis.executor.result.ResultHandler;
@@ -32,7 +32,7 @@
   public Object selectOne(String statement, Object parameter) {
     List list = selectList(statement, parameter);
     if (list.size() != 1) {
-      throw new ApiException("Expected one result to be returned by selectOne(), but found: " + list.size());
+      throw new SessionException("Expected one result to be returned by selectOne(), but found: " + list.size());
     }
     return list.get(0);
   }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java?rev=746636&r1=746572&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/session/defaults/DefaultSqlSessionFactory.java Sun Feb 22 04:52:12 2009
@@ -1,7 +1,7 @@
-package org.apache.ibatis.api.defaults;
+package org.apache.ibatis.session.defaults;
 
-import org.apache.ibatis.api.SqlSession;
-import org.apache.ibatis.api.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSession;
+import org.apache.ibatis.session.SqlSessionFactory;
 import org.apache.ibatis.exceptions.ExceptionFactory;
 import org.apache.ibatis.executor.Executor;
 import org.apache.ibatis.logging.Log;

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=746636&r1=746635&r2=746636&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 04:52:12 2009
@@ -1,8 +1,12 @@
 package org.apache.ibatis.binding;
 
-import org.apache.ibatis.api.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.SqlSession;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import domain.blog.Blog;
+
+import java.util.List;
 
 public class BindingTest {
   private static SqlSessionFactory sqlSessionFactory;
@@ -13,8 +17,16 @@
   }
 
   @Test
-  public void foo() {
-  
+  public void shouldExecuteBoundSelectStatement() {
+    SqlSession session = sqlSessionFactory.openSession();
+    try {
+      BoundBlogMapper mapper = session.getMapper(BoundBlogMapper.class);
+      List<Blog> blogs = mapper.selectBlogs();
+      System.out.println(blogs.size());
+    } finally {
+      session.close();
+    }
+
   }
 
 

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=746636&r1=746635&r2=746636&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 04:52:12 2009
@@ -3,27 +3,28 @@
 import domain.blog.Blog;
 import static org.apache.ibatis.annotations.Annotations.*;
 
-@Cache
+import java.util.List;
+
+@CacheDomain
 public interface BoundBlogMapper {
 
-  @ConstructorArgs({
-      @Arg(id = true, column = ""),
-      @Arg(column = ""),
-      @Arg(column = "")
-      })
-  @Results({
-      @Result(column = "A",property = ""),
-      @Result(column = "B",property = "", collectionSelect = "com.domain.Class.method"),
-      @Result(column = "C",property = "", collectionResults = @Results({
-        @Result(column = "X",property = ""),
-        @Result(column = "Y",property = "")
-      }))
-  })
+//  @ConstructorArgs({
+//      @Arg(id = true, column = ""),
+//      @Arg(column = ""),
+//      @Arg(column = "")
+//      })
+//  @Results({
+//      @Result(column = "A",property = ""),
+//      @Result(column = "B",property = "", collectionSelect = "com.domain.Class.method"),
+//      @Result(column = "C",property = "", collectionResults = @Results({
+//        @Result(column = "X",property = ""),
+//        @Result(column = "Y",property = "")
+//      }))
+//  })
   @Select({
       "SELECT *",
-      "FROM BLOG",
-      "where id = ${id}"
+      "FROM blog"
       })
-  Blog selectBlog(int id);
+  List<Blog> selectBlogs();
 
 }

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=746636&r1=746635&r2=746636&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 04:52:12 2009
@@ -1,7 +1,7 @@
 package org.apache.ibatis.binding;
 
-import org.apache.ibatis.api.SqlSessionFactory;
-import org.apache.ibatis.api.defaults.DefaultSqlSessionFactory;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
 import org.apache.ibatis.mapping.*;
 import org.apache.ibatis.transaction.TransactionFactory;
 import org.apache.ibatis.transaction.jdbc.JdbcTransactionFactory;

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java?rev=746636&r1=746572&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/session/SqlSessionTest.java Sun Feb 22 04:52:12 2009
@@ -1,4 +1,4 @@
-package org.apache.ibatis.api;
+package org.apache.ibatis.session;
 
 import domain.blog.*;
 import org.apache.ibatis.BaseDataTest;
@@ -349,7 +349,7 @@
         mapper.selectAuthor(101);
         fail("Expected exception.");
       } catch(Exception e) {
-        assertEquals(ApiException.class, e.getClass());
+        assertEquals(SessionException.class, e.getClass());
       }
     } finally {
       session.close();

Modified: ibatis/trunk/java/ibatis-3/version.properties
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/version.properties?rev=746636&r1=746635&r2=746636&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/version.properties (original)
+++ ibatis/trunk/java/ibatis-3/version.properties Sun Feb 22 04:52:12 2009
@@ -1,5 +1,5 @@
-#Build version info
-#Fri Feb 20 23:51:43 MST 2009
-version=3.0.0
-buildDate=2009/02/20 23\:51
-buildNum=127
+#Build version info
+#Sat Feb 21 21:47:38 MST 2009
+version=3.0.0
+buildDate=2009/02/21 21\:47
+buildNum=131