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 2008/11/09 04:17:39 UTC
svn commit: r712468 - in /ibatis/trunk/java/ibatis-3/ibatis-3-core/src:
main/java/org/apache/ibatis/api/ main/java/org/apache/ibatis/api/defaults/
main/java/org/apache/ibatis/api/exceptions/
main/java/org/apache/ibatis/builder/ main/java/org/apache/iba...
Author: cbegin
Date: Sat Nov 8 19:17:38 2008
New Revision: 712468
URL: http://svn.apache.org/viewvc?rev=712468&view=rev
Log:
First implementation of public API classes
Added:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/SqlRuntimeException.java
Removed:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/MapperFactory.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/builder/MapperFactoryBuilder.java
Modified:
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/unpooled/UnpooledDataSourceFactory.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/ExamplePlugin.java
ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/MapperConfigParserTest.java
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java?rev=712468&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java Sat Nov 8 19:17:38 2008
@@ -0,0 +1,7 @@
+package org.apache.ibatis.api;
+
+public interface SqlMapper {
+
+ SqlSession openSession();
+
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java?rev=712468&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlSession.java Sat Nov 8 19:17:38 2008
@@ -0,0 +1,4 @@
+package org.apache.ibatis.api;
+
+public interface SqlSession {
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java?rev=712468&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java Sat Nov 8 19:17:38 2008
@@ -0,0 +1,47 @@
+package org.apache.ibatis.api.defaults;
+
+import org.apache.ibatis.api.SqlMapper;
+import org.apache.ibatis.api.SqlSession;
+import org.apache.ibatis.api.exceptions.ExceptionFactory;
+import org.apache.ibatis.mapping.Configuration;
+import org.apache.ibatis.mapping.Environment;
+import org.apache.ibatis.transaction.TransactionFactory;
+import org.apache.ibatis.transaction.Transaction;
+import org.apache.ibatis.executor.Executor;
+
+import javax.sql.DataSource;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+public class DefaultSqlMapper implements SqlMapper {
+
+ private final Configuration configuration;
+ private Environment environment;
+ private DataSource dataSource;
+ private TransactionFactory transactionFactory;
+
+ public DefaultSqlMapper(Configuration configuration) {
+ this.configuration = configuration;
+ this.environment = configuration.getEnvironment();
+ this.dataSource = environment.getDataSource();
+ this.transactionFactory = environment.getTransactionFactory();
+ }
+
+ public SqlSession openSession() {
+ try {
+ Connection connection = dataSource.getConnection();
+ Transaction tx = transactionFactory.newTransaction(connection);
+ Executor executor = configuration.newExecutor(tx);
+ return new DefaultSqlSession(configuration, executor);
+ } catch (SQLException e) {
+ throw ExceptionFactory.wrapSQLException("Error opening session. Cause: " + e, e);
+ }
+ }
+
+ public SqlSession openSession(Connection connection) {
+ Transaction tx = transactionFactory.newTransaction(connection);
+ Executor executor = configuration.newExecutor(tx);
+ return new DefaultSqlSession(configuration, executor);
+ }
+
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java?rev=712468&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlSession.java Sat Nov 8 19:17:38 2008
@@ -0,0 +1,35 @@
+package org.apache.ibatis.api.defaults;
+
+import org.apache.ibatis.api.SqlSession;
+import org.apache.ibatis.api.exceptions.ExceptionFactory;
+import org.apache.ibatis.executor.Executor;
+import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.mapping.Configuration;
+
+import java.util.List;
+import java.sql.SQLException;
+
+public class DefaultSqlSession implements SqlSession {
+
+ private Configuration configuration;
+ private Executor executor;
+
+ public DefaultSqlSession(Configuration configuration, Executor executor) {
+ this.configuration = configuration;
+ this.executor = executor;
+ }
+
+ public List query(String statement) {
+ return query(statement, null);
+ }
+
+ public List query(String statement, Object parameter) {
+ try {
+ MappedStatement ms = configuration.getMappedStatement("com.domain.AuthorMapper.selectAllAuthors");
+ return executor.query(ms, parameter , Executor.NO_ROW_OFFSET, Executor.NO_ROW_LIMIT, Executor.NO_RESULT_HANDLER);
+ } catch (SQLException e) {
+ throw ExceptionFactory.wrapSQLException("Error querying database. Cause: " + e, e);
+ }
+ }
+
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java?rev=712468&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/ExceptionFactory.java Sat Nov 8 19:17:38 2008
@@ -0,0 +1,11 @@
+package org.apache.ibatis.api.exceptions;
+
+import java.sql.SQLException;
+
+public class ExceptionFactory {
+
+ public static RuntimeException wrapSQLException(String message, SQLException e) {
+ return new SqlRuntimeException(message, e);
+ }
+
+}
Added: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/SqlRuntimeException.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/SqlRuntimeException.java?rev=712468&view=auto
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/SqlRuntimeException.java (added)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/exceptions/SqlRuntimeException.java Sat Nov 8 19:17:38 2008
@@ -0,0 +1,21 @@
+package org.apache.ibatis.api.exceptions;
+
+public class SqlRuntimeException extends RuntimeException {
+
+ public SqlRuntimeException() {
+ super();
+ }
+
+ public SqlRuntimeException(String message) {
+ super(message);
+ }
+
+ public SqlRuntimeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public SqlRuntimeException(Throwable cause) {
+ super(cause);
+ }
+
+}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/unpooled/UnpooledDataSourceFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/unpooled/UnpooledDataSourceFactory.java?rev=712468&r1=712467&r2=712468&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/unpooled/UnpooledDataSourceFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/datasource/unpooled/UnpooledDataSourceFactory.java Sat Nov 8 19:17:38 2008
@@ -1,6 +1,5 @@
package org.apache.ibatis.datasource.unpooled;
-import org.apache.ibatis.datasource.unpooled.UnpooledDataSource;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.datasource.DataSourceFactory;
import org.apache.ibatis.datasource.DataSourceException;
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java?rev=712468&r1=712467&r2=712468&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java Sat Nov 8 19:17:38 2008
@@ -12,7 +12,7 @@
}
public Transaction newTransaction(Connection conn) {
- return null;
+ return new JdbcTransaction(conn);
}
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java?rev=712468&r1=712467&r2=712468&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java Sat Nov 8 19:17:38 2008
@@ -1,4 +1,19 @@
package org.apache.ibatis.transaction.managed;
-public class ManagedTransactionFactory {
+import org.apache.ibatis.transaction.TransactionFactory;
+import org.apache.ibatis.transaction.Transaction;
+
+import java.util.Properties;
+import java.sql.Connection;
+
+public class ManagedTransactionFactory implements TransactionFactory {
+
+ public void setProperties(Properties props) {
+
+ }
+
+ public Transaction newTransaction(Connection conn) {
+ return new ManagedTransaction(conn);
+ }
+
}
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/ExamplePlugin.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/ExamplePlugin.java?rev=712468&r1=712467&r2=712468&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/ExamplePlugin.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/ExamplePlugin.java Sat Nov 8 19:17:38 2008
@@ -3,9 +3,11 @@
import org.apache.ibatis.plugin.Interceptor;
import org.apache.ibatis.plugin.Invocation;
import org.apache.ibatis.plugin.Plugin;
+import org.apache.ibatis.plugin.Intercepts;
import java.util.Properties;
+@Intercepts({})
public class ExamplePlugin implements Interceptor {
public Object intercept(Invocation invocation) throws Throwable {
Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/MapperConfigParserTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/MapperConfigParserTest.java?rev=712468&r1=712467&r2=712468&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/MapperConfigParserTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/MapperConfigParserTest.java Sat Nov 8 19:17:38 2008
@@ -3,14 +3,21 @@
import org.junit.Test;
import org.junit.Assert;
import org.apache.ibatis.BaseDataTest;
+import org.apache.ibatis.api.SqlMapper;
+import org.apache.ibatis.api.defaults.DefaultSqlMapper;
+import org.apache.ibatis.executor.Executor;
import org.apache.ibatis.transaction.TransactionFactory;
import org.apache.ibatis.transaction.Transaction;
import org.apache.ibatis.mapping.Configuration;
import org.apache.ibatis.mapping.MappedStatement;
+import org.apache.ibatis.mapping.Environment;
import org.apache.ibatis.io.Resources;
import javax.sql.DataSource;
import java.io.Reader;
+import java.util.List;
+
+import domain.blog.Author;
public class MapperConfigParserTest extends BaseDataTest {
@@ -20,17 +27,24 @@
final String resource = "org/apache/ibatis/builder/MapperConfig.xml";
final Reader reader = Resources.getResourceAsReader(resource);
MapperConfigParser parser = new MapperConfigParser(reader,null);
-
parser.parse();
Configuration config = parser.getConfiguration();
- DataSource ds = config.getEnvironment().getDataSource();
- TransactionFactory tf = config.getEnvironment().getTransactionFactory();
- MappedStatement ms = config.getMappedStatement("selectAllAuthors");
- Transaction tx = tf.newTransaction(ds.getConnection());
+ SqlMapper sqlMapper = new DefaultSqlMapper(config);
+ Environment environment = config.getEnvironment();
+ DataSource ds = environment.getDataSource();
+ TransactionFactory tf = environment.getTransactionFactory();
+ Transaction tx = tf.newTransaction(ds.getConnection());
+ Executor exec = config.newExecutor(tx);
+ MappedStatement ms = config.getMappedStatement("com.domain.AuthorMapper.selectAllAuthors");
+ List<Author> authors = exec.query(ms,null,Executor.NO_ROW_OFFSET, Executor.NO_ROW_LIMIT, Executor.NO_RESULT_HANDLER);
+
+ for (Author author : authors) {
+ System.out.println(author);
+ }
-// Assert.assertEquals(1,config.getCaches().size());
+ Assert.assertEquals(2,config.getCaches().size());
}
}