You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2014/03/13 14:58:06 UTC

svn commit: r1577165 - in /cayenne/main/trunk/cayenne-server/src: main/java/org/apache/cayenne/access/ main/java/org/apache/cayenne/access/jdbc/ main/java/org/apache/cayenne/access/jdbc/reader/ test/java/org/apache/cayenne/access/jdbc/

Author: aadamchik
Date: Thu Mar 13 13:58:05 2014
New Revision: 1577165

URL: http://svn.apache.org/r1577165
Log:
cleanup, refactoring

Modified:
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
    cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java
    cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/DataNode.java Thu Mar 13 13:58:05 2014
@@ -50,8 +50,9 @@ import org.apache.cayenne.query.QueryMet
 import org.apache.cayenne.util.ToStringBuilder;
 
 /**
- * An abstraction of a single physical data storage. This is usually a database server,
- * but can potentially be some other storage type like an LDAP server, etc.
+ * An abstraction of a single physical data storage. This is usually a database
+ * server, but can potentially be some other storage type like an LDAP server,
+ * etc.
  */
 public class DataNode implements QueryEngine {
 
@@ -137,7 +138,8 @@ public class DataNode implements QueryEn
     }
 
     /**
-     * Returns node name. Name is used to uniquely identify DataNode within a DataDomain.
+     * Returns node name. Name is used to uniquely identify DataNode within a
+     * DataDomain.
      */
     public String getName() {
         return name;
@@ -148,8 +150,9 @@ public class DataNode implements QueryEn
     }
 
     /**
-     * Returns a location of DataSource of this node. Depending on how this node was
-     * created, location is either a JNDI name, or a location of node XML file, etc.
+     * Returns a location of DataSource of this node. Depending on how this node
+     * was created, location is either a JNDI name, or a location of node XML
+     * file, etc.
      */
     public String getDataSourceLocation() {
         return dataSourceLocation;
@@ -217,8 +220,8 @@ public class DataNode implements QueryEn
     }
 
     /**
-     * Returns DbAdapter object. This is a plugin that handles RDBMS vendor-specific
-     * features.
+     * Returns DbAdapter object. This is a plugin that handles RDBMS
+     * vendor-specific features.
      */
     public DbAdapter getAdapter() {
         return adapter;
@@ -243,9 +246,7 @@ public class DataNode implements QueryEn
      * 
      * @since 1.1
      */
-    public void performQueries(
-            Collection<? extends Query> queries,
-            OperationObserver callback) {
+    public void performQueries(Collection<? extends Query> queries, OperationObserver callback) {
 
         int listSize = queries.size();
         if (listSize == 0) {
@@ -253,22 +254,21 @@ public class DataNode implements QueryEn
         }
 
         if (callback.isIteratedResult() && listSize > 1) {
-            throw new CayenneRuntimeException(
-                    "Iterated queries are not allowed in a batch. Batch size: "
-                            + listSize);
+            throw new CayenneRuntimeException("Iterated queries are not allowed in a batch. Batch size: " + listSize);
         }
 
         // do this meaningless inexpensive operation to trigger AutoAdapter lazy
-        // initialization before opening a connection. Otherwise we may end up with two
-        // connections open simultaneously, possibly hitting connection pool upper limit.
+        // initialization before opening a connection. Otherwise we may end up
+        // with two
+        // connections open simultaneously, possibly hitting connection pool
+        // upper limit.
         getAdapter().getExtendedTypes();
 
         Connection connection = null;
 
         try {
             connection = this.getDataSource().getConnection();
-        }
-        catch (Exception globalEx) {
+        } catch (Exception globalEx) {
             jdbcEventLogger.logQueryError(globalEx);
 
             Transaction transaction = Transaction.getThreadTransaction();
@@ -288,8 +288,7 @@ public class DataNode implements QueryEn
                 // catch exceptions for each individual query
                 try {
                     queryRunner.runQuery(connection, nextQuery);
-                }
-                catch (Exception queryEx) {
+                } catch (Exception queryEx) {
                     jdbcEventLogger.logQueryError(queryEx);
 
                     // notify consumer of the exception,
@@ -303,12 +302,10 @@ public class DataNode implements QueryEn
                     break;
                 }
             }
-        }
-        finally {
+        } finally {
             try {
                 connection.close();
-            }
-            catch (SQLException e) {
+            } catch (SQLException e) {
                 // ignore closing exceptions...
             }
         }
@@ -322,9 +319,9 @@ public class DataNode implements QueryEn
     }
 
     /**
-     * Sets EntityResolver. DataNode relies on externally set EntityResolver, so if the
-     * node is created outside of DataDomain stack, a valid EntityResolver must be
-     * provided explicitly.
+     * Sets EntityResolver. DataNode relies on externally set EntityResolver, so
+     * if the node is created outside of DataDomain stack, a valid
+     * EntityResolver must be provided explicitly.
      * 
      * @since 1.1
      */
@@ -337,7 +334,8 @@ public class DataNode implements QueryEn
         return new ToStringBuilder(this).append("name", getName()).toString();
     }
 
-    // a read-through DataSource that ensures returning the same connection within
+    // a read-through DataSource that ensures returning the same connection
+    // within
     // transaction.
     final class TransactionDataSource implements DataSource {
 
@@ -358,8 +356,10 @@ public class DataNode implements QueryEn
                     t.addConnection(key, c);
                 }
 
-                // wrap transaction-attached connections in a decorator that prevents them
-                // from being closed by callers, as transaction should take care of them
+                // wrap transaction-attached connections in a decorator that
+                // prevents them
+                // from being closed by callers, as transaction should take care
+                // of them
                 // on commit or rollback.
                 return new TransactionConnectionDecorator(c);
             }
@@ -367,8 +367,7 @@ public class DataNode implements QueryEn
             return dataSource.getConnection();
         }
 
-        public Connection getConnection(String username, String password)
-                throws SQLException {
+        public Connection getConnection(String username, String password) throws SQLException {
             if (schemaUpdateStrategy != null) {
                 schemaUpdateStrategy.updateSchema(DataNode.this);
             }
@@ -382,8 +381,10 @@ public class DataNode implements QueryEn
                     t.addConnection(key, c);
                 }
 
-                // wrap transaction-attached connections in a decorator that prevents them
-                // from being closed by callers, as transaction should take care of them
+                // wrap transaction-attached connections in a decorator that
+                // prevents them
+                // from being closed by callers, as transaction should take care
+                // of them
                 // on commit or rollback.
                 return new TransactionConnectionDecorator(c);
             }
@@ -429,32 +430,33 @@ public class DataNode implements QueryEn
 
         /**
          * @since 3.1
-         *
-         * JDBC 4.1 compatibility under Java 1.5
+         * 
+         *        JDBC 4.1 compatibility under Java 1.5
          */
         public Logger getParentLogger() throws SQLFeatureNotSupportedException {
-            // don't throw SQLFeatureNotSupported - this will break JDK 1.5 runtime
+            // don't throw SQLFeatureNotSupported - this will break JDK 1.5
+            // runtime
             throw new UnsupportedOperationException();
         }
     }
-    
+
     /**
      * Creates a {@link RowReader} using internal {@link RowReaderFactory}.
      * 
      * @since 3.2
      */
-    public RowReader<?> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
-        return createRowReader(descriptor, queryMetadata, Collections.<ObjAttribute, ColumnDescriptor> emptyMap());
+    public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata queryMetadata) {
+        return rowReader(descriptor, queryMetadata, Collections.<ObjAttribute, ColumnDescriptor> emptyMap());
     }
-    
+
     /**
      * Creates a {@link RowReader} using internal {@link RowReaderFactory}.
      * 
      * @since 3.2
      */
-    public RowReader<?> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata,
+    public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata queryMetadata,
             Map<ObjAttribute, ColumnDescriptor> attributeOverrides) {
-        return rowReaderFactory.createRowReader(descriptor, queryMetadata, getAdapter(), attributeOverrides);
+        return rowReaderFactory.rowReader(descriptor, queryMetadata, getAdapter(), attributeOverrides);
     }
 
     /**
@@ -470,7 +472,7 @@ public class DataNode implements QueryEn
     public void setRowReaderFactory(RowReaderFactory rowReaderFactory) {
         this.rowReaderFactory = rowReaderFactory;
     }
-    
+
     /**
      * @since 3.2
      */

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BaseSQLAction.java Thu Mar 13 13:58:05 2014
@@ -57,7 +57,7 @@ public abstract class BaseSQLAction impl
 
         QueryMetadata metadata = query.getMetaData(dataNode.getEntityResolver());
 
-        RowReader<?> rowReader = dataNode.createRowReader(descriptor, metadata);
+        RowReader<?> rowReader = dataNode.rowReader(descriptor, metadata);
 
         JDBCResultIterator resultReader = new JDBCResultIterator(null, resultSet, rowReader);
 

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/BatchAction.java Thu Mar 13 13:58:05 2014
@@ -286,7 +286,7 @@ public class BatchAction extends BaseSQL
             this.keyRowDescriptor = builder.getDescriptor(dataNode.getAdapter().getExtendedTypes());
         }
 
-        RowReader<?> rowReader = dataNode.createRowReader(keyRowDescriptor,
+        RowReader<?> rowReader = dataNode.rowReader(keyRowDescriptor,
                 query.getMetaData(dataNode.getEntityResolver()),
                 Collections.<ObjAttribute, ColumnDescriptor> emptyMap());
         ResultIterator iterator = new JDBCResultIterator(null, keysRS, rowReader);

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SQLTemplateAction.java Thu Mar 13 13:58:05 2014
@@ -201,7 +201,7 @@ public class SQLTemplateAction implement
 
         ExtendedTypeMap types = dataNode.getAdapter().getExtendedTypes();
         RowDescriptorBuilder builder = configureRowDescriptorBuilder(compiled, resultSet);
-        RowReader<?> rowReader = dataNode.createRowReader(builder.getDescriptor(types), queryMetadata);
+        RowReader<?> rowReader = dataNode.rowReader(builder.getDescriptor(types), queryMetadata);
 
         JDBCResultIterator result = new JDBCResultIterator(statement, resultSet, rowReader);
 

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/SelectAction.java Thu Mar 13 13:58:05 2014
@@ -85,7 +85,7 @@ public class SelectAction extends BaseSQ
         RowDescriptor descriptor = new RowDescriptorBuilder().setColumns(translator.getResultColumns()).getDescriptor(
                 dataNode.getAdapter().getExtendedTypes());
         
-        RowReader<?> rowReader = dataNode.createRowReader(descriptor, md, translator.getAttributeOverrides());
+        RowReader<?> rowReader = dataNode.rowReader(descriptor, md, translator.getAttributeOverrides());
 
         JDBCResultIterator workerIterator = new JDBCResultIterator(prepStmt, rs, rowReader);
 

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/DefaultRowReaderFactory.java Thu Mar 13 13:58:05 2014
@@ -30,6 +30,7 @@ import org.apache.cayenne.access.jdbc.Co
 import org.apache.cayenne.access.jdbc.RowDescriptor;
 import org.apache.cayenne.access.jdbc.reader.DataRowPostProcessor.ColumnOverride;
 import org.apache.cayenne.access.types.ExtendedType;
+import org.apache.cayenne.access.types.ExtendedTypeMap;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.TypesMapping;
 import org.apache.cayenne.map.Entity;
@@ -45,11 +46,11 @@ import org.apache.cayenne.reflect.ClassD
 public class DefaultRowReaderFactory implements RowReaderFactory {
 
     @Override
-    public RowReader<?> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, DbAdapter adapter,
+    public RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, DbAdapter adapter,
             Map<ObjAttribute, ColumnDescriptor> attributeOverrides) {
 
-        PostprocessorFactory postProcessorFactory = new PostprocessorFactory(descriptor, queryMetadata, adapter,
-                attributeOverrides);
+        PostprocessorFactory postProcessorFactory = new PostprocessorFactory(descriptor, queryMetadata,
+                adapter.getExtendedTypes(), attributeOverrides);
 
         List<Object> rsMapping = queryMetadata.getResultSetMapping();
         if (rsMapping == null) {
@@ -116,17 +117,17 @@ public class DefaultRowReaderFactory imp
     private class PostprocessorFactory {
 
         private QueryMetadata queryMetadata;
-        private DbAdapter adapter;
+        private ExtendedTypeMap extendedTypes;
         private Map<ObjAttribute, ColumnDescriptor> attributeOverrides;
         private RowDescriptor rowDescriptor;
 
         private boolean created;
         private DataRowPostProcessor postProcessor;
 
-        PostprocessorFactory(RowDescriptor rowDescriptor, QueryMetadata queryMetadata, DbAdapter adapter,
+        PostprocessorFactory(RowDescriptor rowDescriptor, QueryMetadata queryMetadata, ExtendedTypeMap extendedTypes,
                 Map<ObjAttribute, ColumnDescriptor> attributeOverrides) {
             this.rowDescriptor = rowDescriptor;
-            this.adapter = adapter;
+            this.extendedTypes = extendedTypes;
             this.attributeOverrides = attributeOverrides;
             this.queryMetadata = queryMetadata;
         }
@@ -179,7 +180,7 @@ public class DefaultRowReaderFactory imp
                     continue;
                 }
 
-                ExtendedType converter = adapter.getExtendedTypes().getRegisteredType(attribute.getType());
+                ExtendedType converter = extendedTypes.getRegisteredType(attribute.getType());
 
                 Collection<ColumnOverride> overrides = columnOverrides.get(entity.getName());
 

Modified: cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java (original)
+++ cayenne/main/trunk/cayenne-server/src/main/java/org/apache/cayenne/access/jdbc/reader/RowReaderFactory.java Thu Mar 13 13:58:05 2014
@@ -33,6 +33,6 @@ import org.apache.cayenne.query.QueryMet
  */
 public interface RowReaderFactory {
 
-    RowReader<?> createRowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, DbAdapter adapter,
+    RowReader<?> rowReader(RowDescriptor descriptor, QueryMetadata queryMetadata, DbAdapter adapter,
             Map<ObjAttribute, ColumnDescriptor> attributeOverrides);
 }

Modified: cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java?rev=1577165&r1=1577164&r2=1577165&view=diff
==============================================================================
--- cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java (original)
+++ cayenne/main/trunk/cayenne-server/src/test/java/org/apache/cayenne/access/jdbc/JDBCResultIteratorTest.java Thu Mar 13 13:58:05 2014
@@ -48,7 +48,7 @@ public class JDBCResultIteratorTest exte
         rs.addColumn("a", new Object[] { "1", "2", "3" });
 
         RowDescriptor descriptor = new RowDescriptorBuilder().setResultSet(rs).getDescriptor(new ExtendedTypeMap());
-        RowReader<?> rowReader = new DefaultRowReaderFactory().createRowReader(descriptor, new MockQueryMetadata(),
+        RowReader<?> rowReader = new DefaultRowReaderFactory().rowReader(descriptor, new MockQueryMetadata(),
                 mock(DbAdapter.class), Collections.<ObjAttribute, ColumnDescriptor> emptyMap());
 
         JDBCResultIterator it = new JDBCResultIterator(s, rs, rowReader);