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