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/02 22:46:29 UTC
svn commit: r730847 - in /ibatis/trunk/java/ibatis-3: ./
ibatis-3-core/src/main/java/org/apache/ibatis/executor/
ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/
ibatis-3-core/src/test/java/domain/blog/ ibatis-3-core/src/test/java/org/...
Author: cbegin
Date: Fri Jan 2 13:46:28 2009
New Revision: 730847
URL: http://svn.apache.org/viewvc?rev=730847&view=rev
Log:
Refactored ErrorContext.
Added first association test ... currently ignored.
Modified:
ibatis/trunk/java/ibatis-3/TODO
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/domain/blog/Blog.java
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/executor/ErrorContextTest.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/MapperConfig.xml
Modified: ibatis/trunk/java/ibatis-3/TODO
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/TODO?rev=730847&r1=730846&r2=730847&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/TODO (original)
+++ ibatis/trunk/java/ibatis-3/TODO Fri Jan 2 13:46:28 2009
@@ -1,5 +1,6 @@
Improvements
* Duplicate element IDs are clobbering each other in config
+ * Need to report on lookups of nonexisting config elements (e.g. config.getMappedStatement)
* Statement (other elements?) not found does not fail gracefully
* Improved Error Messages
* Exception hierarchy returned from exceptionfactory
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java?rev=730847&r1=730846&r2=730847&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/ErrorContext.java Fri Jan 2 13:46:28 2009
@@ -2,39 +2,81 @@
public class ErrorContext {
+ private static final ThreadLocal<ErrorContext> local = new ThreadLocal<ErrorContext>();
+
+ public static void set(String resource, String activity, String objectId, String moreInfo) {
+ _local()._set(resource,activity,objectId,moreInfo);
+ }
+
+ public static void set(String activity, String objectId, String moreInfo) {
+ _local()._set(activity,objectId,moreInfo);
+ }
+
+ public static void set(String objectId, String moreInfo) {
+ _local()._set(objectId,moreInfo);
+ }
+
+ public static void set(String moreInfo) {
+ _local()._set(moreInfo);
+ }
+
+ public static void set(Throwable cause) {
+ _local()._set(cause);
+ }
+
+ public static String description() {
+ return _local()._toString();
+ }
+
+ public static void reset() {
+ _local()._reset();
+ }
+
+ private static ErrorContext _local() {
+ ErrorContext context = local.get();
+ if (context == null) {
+ context = new ErrorContext();
+ local.set(context);
+ }
+ return context;
+ }
+
private String resource;
private String activity;
private String objectId;
private String moreInfo;
private Throwable cause;
- public void set(String resource, String activity, String objectId, String moreInfo) {
+ private ErrorContext() {
+ }
+
+ private void _set(String resource, String activity, String objectId, String moreInfo) {
this.resource = resource;
this.activity = activity;
this.objectId = objectId;
this.moreInfo = moreInfo;
}
- public void set(String activity, String objectId, String moreInfo) {
+ private void _set(String activity, String objectId, String moreInfo) {
this.activity = activity;
this.objectId = objectId;
this.moreInfo = moreInfo;
}
- public void set(String objectId, String moreInfo) {
+ private void _set(String objectId, String moreInfo) {
this.objectId = objectId;
this.moreInfo = moreInfo;
}
- public void set(String moreInfo) {
+ private void _set(String moreInfo) {
this.moreInfo = moreInfo;
}
- public void set(Throwable cause) {
+ private void _set(Throwable cause) {
this.cause = cause;
}
- public String toString() {
+ private String _toString() {
StringBuffer message = new StringBuffer();
// resource
@@ -73,7 +115,7 @@
return message.toString();
}
- public void reset() {
+ private void _reset() {
resource = null;
activity = null;
objectId = null;
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java?rev=730847&r1=730846&r2=730847&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/executor/statement/BaseStatementHandler.java Fri Jan 2 13:46:28 2009
@@ -12,7 +12,6 @@
public abstract class BaseStatementHandler implements StatementHandler {
- protected final ErrorContext errorContext;
protected final ObjectFactory objectFactory;
protected final TypeHandlerRegistry typeHandlerRegistry;
protected final ResultSetHandler resultSetHandler;
@@ -33,7 +32,6 @@
this.rowLimit = rowLimit;
Configuration configuration = mappedStatement.getConfiguration();
- this.errorContext = new ErrorContext();
this.typeHandlerRegistry = configuration.getTypeHandlerRegistry();
this.objectFactory = configuration.getObjectFactory();
this.parameterHandler = configuration.newParameterHandler(mappedStatement, parameterObject);
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/domain/blog/Blog.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/domain/blog/Blog.java?rev=730847&r1=730846&r2=730847&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/domain/blog/Blog.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/domain/blog/Blog.java Fri Jan 2 13:46:28 2009
@@ -5,8 +5,8 @@
public class Blog {
private int id;
- private Author author;
private String title;
+ private Author author;
private List<Post> posts;
public int getId() {
@@ -17,14 +17,6 @@
this.id = id;
}
- public Author getAuthor() {
- return author;
- }
-
- public void setAuthor(Author author) {
- this.author = author;
- }
-
public String getTitle() {
return title;
}
@@ -33,6 +25,14 @@
this.title = title;
}
+ public Author getAuthor() {
+ return author;
+ }
+
+ public void setAuthor(Author author) {
+ this.author = author;
+ }
+
public List<Post> getPosts() {
return posts;
}
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=730847&r1=730846&r2=730847&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 Fri Jan 2 13:46:28 2009
@@ -10,6 +10,7 @@
import domain.blog.Author;
import domain.blog.Section;
import domain.blog.ImmutableAuthor;
+import domain.blog.Blog;
public class SqlSessionTest extends BaseDataTest {
private static SqlSessionFactory sqlMapper;
@@ -160,4 +161,16 @@
}
}
+ @Test @Ignore
+ public void shouldSelectBlogWithPostsUsingSubSelect() throws Exception {
+ SqlSession session = sqlMapper.openSession();
+ try {
+ Blog blog = (Blog) session.selectOne("com.domain.BlogMapper.selectBlogWithPostsUsingSubSelect", 1);
+
+ System.out.println(blog.getTitle());
+ } finally {
+ session.close();
+ }
+ }
+
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java?rev=730847&r1=730846&r2=730847&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/ErrorContextTest.java Fri Jan 2 13:46:28 2009
@@ -6,26 +6,25 @@
@Test
public void shouldShowProgressiveErrorContextBuilding() {
- ErrorContext context = new ErrorContext();
- context.set("somefile.xml", "some activity", "some object", "Here's more info.");
- context.toString().startsWith("*** The error occurred in somefile.xml.");
- context.reset();
-
- context.set("some activity", "some object", "Here's more info.");
- context.toString().startsWith("*** The error occurred while some activity.");
- context.reset();
-
- context.set("some object", "Here's more info.");
- context.toString().startsWith("*** Check some object.");
- context.reset();
-
- context.set("Here's more info.");
- context.toString().startsWith("*** Here's more info.");
- context.reset();
-
- context.set(new Exception("test"));
- context.toString().startsWith("*** Cause: java.lang.Exception: test");
- context.reset();
+ ErrorContext.set("somefile.xml", "some activity", "some object", "Here's more info.");
+ ErrorContext.description().startsWith("*** The error occurred in somefile.xml.");
+ ErrorContext.reset();
+
+ ErrorContext.set("some activity", "some object", "Here's more info.");
+ ErrorContext.description().startsWith("*** The error occurred while some activity.");
+ ErrorContext.reset();
+
+ ErrorContext.set("some object", "Here's more info.");
+ ErrorContext.description().startsWith("*** Check some object.");
+ ErrorContext.reset();
+
+ ErrorContext.set("Here's more info.");
+ ErrorContext.description().startsWith("*** Here's more info.");
+ ErrorContext.reset();
+
+ ErrorContext.set(new Exception("test"));
+ ErrorContext.description().startsWith("*** Cause: java.lang.Exception: test");
+ ErrorContext.reset();
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml?rev=730847&r1=730846&r2=730847&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/parser/BlogMapper.xml Fri Jan 2 13:46:28 2009
@@ -6,18 +6,18 @@
<mapper namespace="com.domain.BlogMapper">
- <resultMap id="" type="" extends="">
- <constructor>
- <id column="" javaType="" jdbcType="" typeHandler="" />
- <result column="" javaType="" jdbcType="" typeHandler=""/>
- </constructor>
- <result property="" column="" javaType="" jdbcType="" typeHandler=""/>
- <collection property="" column="" javaType="" select="" resultMap=""/>
+ <resultMap id="blogWithPosts" type="Blog">
+ <id property="id" column="id" />
+ <result property="title" column="title" />
+ <collection property="posts" column="id" javaType="Post" select="selectPostsForBlog" />
</resultMap>
- <select id="selectAllPeople" useCache="true" flushCache="false" parameterType="" resultType="" resultMap="">
- select * from PERSON order by
- ${opts.order,javaType="",jdbcType="",typeHandler="",mode="",scale="",resultMap=""}
+ <select id="selectBlogWithPostsUsingSubSelect" parameterType="int" resultMap="blogWithPosts">
+ select * from Blog where id = ${id}
</select>
+ <select id="selectPostsForBlog" parameterType="int" resultType="Post" >
+ select * from Post where blog_id = ${blog_id}
+ </select>
+
</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=730847&r1=730846&r2=730847&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 Fri Jan 2 13:46:28 2009
@@ -20,7 +20,7 @@
<setting name="defaultExecutorType" value="SIMPLE"/>
<setting name="defaultStatementTimeout" value="25000"/>
</settings>
-
+
<typeAliases>
<typeAlias alias="Author" type="domain.blog.Author"/>
<typeAlias alias="Blog" type="domain.blog.Blog"/>
@@ -61,6 +61,7 @@
<mappers>
<!-- mapperXML vs. mapperClass-->
<mapper resource="org/apache/ibatis/parser/AuthorMapper.xml"/>
+ <mapper resource="org/apache/ibatis/parser/BlogMapper.xml"/>
</mappers>
</configuration>