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());
   }
 
 }